一峦萎、繪制直線(xiàn)、線(xiàn)段
#pragma mark 繪制直線(xiàn)
- (void)drawLine{
//獲取上下文
CGContextRef contextRef = UIGraphicsGetCurrentContext();
//創(chuàng)建路徑忆首,并設(shè)置為可變路徑
CGMutablePathRef mutablePath = CGPathCreateMutable();
/*
*設(shè)置路徑上的點(diǎn)
*設(shè)置路徑的起始點(diǎn)
*mutablePath 需要添加起始點(diǎn)的可變路徑
*還有transform 坐標(biāo)系的變化
**/
CGPathMoveToPoint(mutablePath, NULL, 50, 50);
/*
*向路徑中添加點(diǎn)
*/
CGPathAddLineToPoint(mutablePath, NULL, 106, 100);
CGPathAddLineToPoint(mutablePath, NULL, 222, 140);
CGPathAddLineToPoint(mutablePath, NULL, 100, 200);
CGPathAddLineToPoint(mutablePath, NULL, 250, 50);
CGPathAddLineToPoint(mutablePath, NULL, 50, 190);
/*
*封閉路徑爱榔,將起點(diǎn)和終點(diǎn)連接起來(lái)
**/
CGPathCloseSubpath(mutablePath);
/*設(shè)置繪制的屬性*
*1.線(xiàn)條分段的顏色
*2.設(shè)置圖形的填充顏色
*3.設(shè)置線(xiàn)條的寬度
*4.設(shè)置線(xiàn)條分段連接點(diǎn)的樣式
**/
CGContextSetStrokeColorWithColor(contextRef, [UIColor greenColor].CGColor);
CGContextSetFillColorWithColor(contextRef, [UIColor cyanColor].CGColor);
CGContextSetLineWidth(contextRef, 2);
CGContextSetLineJoin(contextRef, kCGLineJoinRound);
/*開(kāi)始繪制路徑
*1.將創(chuàng)建好的路徑添加到上下文中
*2.在上下文中繪制已經(jīng)添加的路徑
*<#CGPathDrawingMode mode#> 繪制模式
**/
CGContextAddPath(contextRef, mutablePath);
CGContextDrawPath(contextRef, kCGPathFillStroke);
/*
*最后銷(xiāo)毀create函數(shù)創(chuàng)建的變量,因?yàn)樵贑G框架中糙及,所有使用create函數(shù)創(chuàng)建的變量都需要手動(dòng)來(lái)銷(xiāo)毀
*/
CGPathRelease(mutablePath);
}
繪制直線(xiàn)的另一種方式
- (void)drawLineWay2{
/*
*創(chuàng)建需要繪制的區(qū)域*/
CGRect rect = self.frame;
/*
*將rect添加到圖形上下文中
*/
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextAddRect(context, rect);
/*
*設(shè)置顏色详幽、寬度
*/
[[UIColor redColor] setFill];
[[UIColor yellowColor] setStroke];
CGContextSetLineWidth(context, 100);
CGContextDrawPath(context, kCGPathFillStroke);
}
二、繪制圓形
CGContextRef contextRef = UIGraphicsGetCurrentContext();
/*
*參數(shù)說(shuō)明
*<#CGContextRef _Nullable c#> 上下文
*<#CGFloat x#> 和 <#CGFloat y#> 圓心坐標(biāo)
*<#CGFloat radius#> 半徑
*<#CGFloat startAngle#> 和 <#CGFloat endAngle#> 開(kāi)始和結(jié)束的角度浸锨,0度在x軸的正方向唇聘,角度沿順時(shí)針?lè)较蛟龃? *<#int clockwise#> 繪制的方向,1表示逆時(shí)針繪制柱搜,0表示順時(shí)針繪制
*/
CGContextAddArc(contextRef, 180, 300, 100, 0, M_PI*2, 0);
[[UIColor orangeColor] setStroke];//
[[UIColor purpleColor] setFill];;//填充顏色
CGContextSetLineWidth(contextRef, 10);
CGContextDrawPath(contextRef, kCGPathFillStroke);
三迟郎、繪制矩形
- (void)drawRectangle{
/*
*創(chuàng)建一個(gè)矩形區(qū)域
*/
CGRect rect = CGRectMake(50, 50, 100, 61.8);
/*
*將rect添加到圖形上下文中
*/
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextAddRect(context, rect);
/*
*設(shè)定顏色,開(kāi)始繪制
*/
[[UIColor redColor] setFill];
[[UIColor yellowColor] setStroke];
CGContextSetLineWidth(context, 3);
CGContextDrawPath(context, kCGPathFillStroke);
}
稍后再練習(xí)繪制文字和圖片