IOS-Core Graphic 畫圖

來源:互聯網
上載者:User

IOS-Core Graphic 畫圖

*重新定義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);

2.繪製矩形

 

 

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

3.繪製漸層

 

 

_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);

4.繪製文字

 

 


NSString *str=[UIFont fontWithName:@"Gill Sans" size:30];    NSString *drawText=@"hello !";    [drawText drawAtPoint:CGPointMake(30, 100) withFont:str];

5.繪製圖片

 

 

 

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

6.貝茲路徑繪製

 

 

    //繪製線    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];

7.儲存繪製環境,在繪製過程中 屬性可能需要儲存到棧中 這時候調用CGContextSaveGState進行儲存,

 

並在需要的時候通過CGContextRestoreGState進行恢複。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.