【iOS開發(fā)】繪制

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)系是左上角為原點(diǎn),CoreGraphics的坐標(biāo)系與數(shù)學(xué)坐標(biāo)系相同(原點(diǎn)在左下角),在- (void)draw方法進(jìn)行繪制時(shí),系統(tǒng)自動(dò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);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容