UIkit
// 繪制矩形
UIBezierPath *path = [UIBezierPath bezierPathWithRect:CGRectMake(160, 10, 40, 40)];
[[UIColor blackColor] setStroke];
[path stroke];
// 繪制圓形
UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(60, 150) radius:40 startAngle:0 endAngle:M_PI * 2 clockwise:NO];
[[UIColor blackColor] setFill];
[path fill]
// 繪制三角形
UIBezierPath *path = [UIBezierPath bezierPath];
[path moveToPoint:CGPointMake(130, 10)];
[path addLineToPoint:CGPointMake(110, 50)];
[path addLineToPoint:CGPointMake(150, 50)];
[path closePath];
[[UIColor blackColor] setStroke];
[path stroke];
// 繪制橢圓形
UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(60, 10, 40, 40)];
[[UIColor blackColor] setStroke];
[path stroke];
// 繪制圓角矩形
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(100, 300, 40, 40) cornerRadius:10];
[[UIColor blackColor] setStroke];
[path stroke];
// 繪制弧線段
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(100, 400, 60, 30) byRoundingCorners:UIRectCornerTopLeft cornerRadii:CGSizeMake(5, 5)];
[[UIColor blackColor] setStroke];
[path stroke];
CoreGraphics
// 繪制矩形
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextAddRect(ctx, CGRectMake(200, 40, 40, 40));
CGContextSetStrokeColorWithColor(ctx, [UIColor blackColor].CGColor);
CGContextStrokePath(ctx);
// 繪制圓形
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextAddArc(ctx, 60, 60, 20, 0, M_PI/2, 0);
CGContextSetStrokeColorWithColor(ctx, [UIColor blackColor].CGColor);
CGContextStrokePath(ctx);
// 繪制三角形
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGPoint startPoint = CGPointMake(140, 40);
CGContextMoveToPoint(ctx, startPoint.x, startPoint.y);
CGContextAddLineToPoint(ctx, 120, 80);
CGContextAddLineToPoint(ctx, 160, 80);
CGContextClosePath(ctx);
CGContextSetStrokeColorWithColor(ctx, [UIColor blackColor].CGColor);
CGContextStrokePath(ctx);
// 繪制橢圓形
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextAddEllipseInRect(ctx, CGRectMake(280, 40, 50, 40));
CGContextSetStrokeColorWithColor(ctx, [UIColor blackColor].CGColor);
CGContextStrokePath(ctx);
坐標(biāo)系
UIkit的坐標(biāo)系是左上角為原點呵曹,CoreGraphics的坐標(biāo)系與數(shù)學(xué)坐標(biāo)系相同(原點在左下角)卖宠,在- (void)draw方法進(jìn)行繪制時,系統(tǒng)自動將坐標(biāo)系轉(zhuǎn)換成UIKit的坐標(biāo)系抡锈。
- 坐標(biāo)系的轉(zhuǎn)換方法
// CoreGraphics坐標(biāo)系轉(zhuǎn)換成UIKit坐標(biāo)系
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(ctx, 0, self.bounds.size.height);
CGContextScaleCTM(ctx, 1.0, - 1.0);