积累系统性知识
积聚技术精华
  首页    个人中心    撰写积文    建立课题    订立目标    整理积文    管理课题    管理目标    技能Get    代码积累 
IOS-Core Graphic 画图
error997 (error997)    2015-05-10 19:11:13      目标    课题
   *重新定义UIView 并在drawRect:(CGRect) rect;中绘制
   1.绘制路径

切换到: 纯代码  
   
_context=UIGraphicsGetCurrentContext();  
  
    CGMutablePathRef path=CGPathCreateMutable();  
      
    CGPathMoveToPoint(path, NULL, 50, 50);  
    CGPathAddLineToPoint(path, NULL, 150, 150);  
    CGPathAddLineToPoint(path, NULL, 50, 150);  
    CGPathCloseSubpath(path);  
      
    CGContextAddPath(_context, path);  
      
    CGFloat myColor[4]={1.0f,1.0f,0,1.0f};  
    CGContextSetFillColor(_context,myColor);  
    CGContextSetStrokeColor(_context, myColor);  
    CGContextSetShouldAntialias(_context, NO);  
    CGContextSetLineWidth(_context, 15.0);  
    CGContextSetLineJoin(_context, kCGLineJoinRound);  
      
    CGContextDrawPath(_context, kCGPathStroke);  
      
    CGPathRelease(path);  
    CGContextRelease(_context);


   _context=UIGraphicsGetCurrentContext();

    CGMutablePathRef path=CGPathCreateMutable();
    
    CGPathMoveToPoint(path, NULL, 50, 50);
    CGPathAddLineToPoint(path, NULL, 150, 150);
    CGPathAddLineToPoint(path, NULL, 50, 150);
    CGPathCloseSubpath(path);
    
    CGContextAddPath(_context, path);
    
    CGFloat myColor[4]={1.0f,1.0f,0,1.0f};
    CGContextSetFillColor(_context,myColor);
    CGContextSetStrokeColor(_context, myColor);
    CGContextSetShouldAntialias(_context, NO);
    CGContextSetLineWidth(_context, 15.0);
    CGContextSetLineJoin(_context, kCGLineJoinRound);
    
    CGContextDrawPath(_context, kCGPathStroke);
    
    CGPathRelease(path);
    CGContextRelease(_context);

切换到: 纯代码  
   
CGRect rect2=CGRectMake(0, 0, 200, 200);  
CGContextSetStrokeColorWithColor(_context, [UIColor redColor].CGColor);  
CGContextSetLineWidth(_context, 2.0);  
CGContextStrokeRect(_context, rect2);


   CGRect rect2=CGRectMake(0, 0, 200, 200);
    CGContextSetStrokeColorWithColor(_context, [UIColor redColor].CGColor);
    CGContextSetLineWidth(_context, 2.0);
    CGContextStrokeRect(_context, rect2);

切换到: 纯代码  
   
_context=UIGraphicsGetCurrentContext();  
      
    //颜色模式   
    CGColorSpaceRef colorSpace=CGColorSpaceCreateDeviceRGB();  
      
    //构建颜色值   
    NSArray *colors=@[(__bridge id)[UIColor redColor].CGColor,(__bridge id)[UIColor greenColor].CGColor];  
    //颜色点的位置   
    CGFloat location[2]={0,1};  
      
    //设置渐变模式   
    CGGradientRef gradient=CGGradientCreateWithColors(colorSpace, (__bridge CFArrayRef)colors,location);  
      
    CGContextSaveGState(_context);  
      
    CGRect rect2=CGRectMake(0, 0, 150, 150);  
    //绘制区域   
    CGContextAddRect(_context, rect2);  
    //区域裁剪   
    CGContextClip(_context);  
      
    //裁剪位置   
    CGContextDrawLinearGradient(_context, gradient, CGPointMake(0, 0), CGPointMake(150, 150),kCGGradientDrawsAfterEndLocation);  
      
    CGContextRestoreGState(_context);  
      
    //释放资源   
    CGColorSpaceRelease(colorSpace);  
    CGGradientRelease(gradient);  
      
      
    CGContextRelease(_context);


   _context=UIGraphicsGetCurrentContext();
    
    //颜色模式
    CGColorSpaceRef colorSpace=CGColorSpaceCreateDeviceRGB();
    
    //构建颜色值
    NSArray *colors=@[(__bridge id)[UIColor redColor].CGColor,(__bridge id)[UIColor greenColor].CGColor];
    //颜色点的位置
    CGFloat location[2]={0,1};
    
    //设置渐变模式
    CGGradientRef gradient=CGGradientCreateWithColors(colorSpace, (__bridge CFArrayRef)colors,location);
    
    CGContextSaveGState(_context);
    
    CGRect rect2=CGRectMake(0, 0, 150, 150);
    //绘制区域
    CGContextAddRect(_context, rect2);
    //区域裁剪
    CGContextClip(_context);
    
    //裁剪位置
    CGContextDrawLinearGradient(_context, gradient, CGPointMake(0, 0), CGPointMake(150, 150),kCGGradientDrawsAfterEndLocation);
    
    CGContextRestoreGState(_context);
    
    //释放资源
    CGColorSpaceRelease(colorSpace);
    CGGradientRelease(gradient);
    
    
    CGContextRelease(_context);

切换到: 纯代码  
   
</pre><pre name="code" class="objc">NSString *str=[UIFont fontWithName:@"Gill Sans" size:30];  
    NSString *drawText=@"hello !";  
    [drawText drawAtPoint:CGPointMake(30, 100) withFont:str];


   </pre><pre name="code" class="objc">NSString *str=[UIFont fontWithName:@"Gill Sans" size:30];
    NSString *drawText=@"hello !";
    [drawText drawAtPoint:CGPointMake(30, 100) withFont:str];

切换到: 纯代码  
   
UIImage *image=[UIImage imageNamed:@"头像2.png"];  
      
    [image drawAtPoint:CGPointMake(30, 30)];  
      
    CGImageRelease([image CGImage]);


   UIImage *image=[UIImage imageNamed:@"头像2.png"];
    
    [image drawAtPoint:CGPointMake(30, 30)];
    
    CGImageRelease([image CGImage]);

切换到: 纯代码  
   
//绘制线   
UIBezierPath *path=[UIBezierPath bezierPath];  
[path moveToPoint:CGPointMake(30, 30)];  
[path addLineToPoint:CGPointMake(30, 120)];  
[path addLineToPoint:CGPointMake(120, 120)];  
[path closePath];  
  
//绘制圆   
UIBezierPath *path=[UIBezierPath bezierPathWithArcCenter:CGPointMake(100, 100) radius:100.0 startAngle:0 endAngle:180 clockwise:YES];  
//绘制矩形   
UIBezierPath *path=[UIBezierPath bezierPathWithRect:CGRectMake(20, 20, 150, 150)];  
  
//绘制椭圆   
UIBezierPath *path=[UIBezierPath bezierPathWithOvalInRect:CGRectMake(10, 10, 120, 60)];  
//设置颜色   
[[UIColor redColor]set];  
  
path.lineWidth=5;  
[path fill];  
[[UIColor yellowColor]set];  
[path stroke];


   //绘制线
    UIBezierPath *path=[UIBezierPath bezierPath];
    [path moveToPoint:CGPointMake(30, 30)];
    [path addLineToPoint:CGPointMake(30, 120)];
    [path addLineToPoint:CGPointMake(120, 120)];
    [path closePath];

    //绘制圆
    UIBezierPath *path=[UIBezierPath bezierPathWithArcCenter:CGPointMake(100, 100) radius:100.0 startAngle:0 endAngle:180 clockwise:YES];
    //绘制矩形
    UIBezierPath *path=[UIBezierPath bezierPathWithRect:CGRectMake(20, 20, 150, 150)];
    
    //绘制椭圆
    UIBezierPath *path=[UIBezierPath bezierPathWithOvalInRect:CGRectMake(10, 10, 120, 60)];
    //设置颜色
    [[UIColor redColor]set];
    
    path.lineWidth=5;
    [path fill];
    [[UIColor yellowColor]set];
    [path stroke];
   并在需要的时候通过CGContextRestoreGState进行恢复。

转自 http://blog.csdn.net/qq285016127/article/details/44564725
(+0)技能Get

建议楼主:搜索关键字 |参考其他资源 |回复 |追问
  error997(error997):   个人中心    课题    目标    代码积累