在view上繪製一個圖形的方式有不少種,表現形式可能不同,但其實質步驟都是同樣的:動畫
1)獲取上下文spa
2)繪製路徑code
3)添加路徑到上下文ci
4)修改圖形狀態參數it
5)渲染上下文table
下面咱們以畫一個圓形來演示其實現步驟:class
1)使用CGContextRef建立路徑渲染
1
2
3
4
5
6
7
8
9
|
//獲取上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
//繪製路徑: 圓形(中心座標200、200、半徑100、起點弧度0、終點弧度2PI、畫的方向0逆1正)
CGContextAddArc(ctx, 200, 200, 100, 0, M_PI * 2, 0);
//修改圖形狀態參數
CGContextSetRGBStrokeColor(ctx, 0.5, 0.5, 0.9, 1.0);
//筆顏色
CGContextSetLineWidth(ctx, 10);
//線條寬度
//渲染上下文
CGContextStrokePath(ctx);
|
2)使用CGPathRef建立路徑tab
1
2
3
4
5
6
7
8
9
10
11
12
13
|
//獲取上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
//建立可變路徑
CGMutablePathRef path = CGPathCreateMutable();
//添加圓形到路徑中(所在路徑、不進行變換操做、中心座標200、200、起點弧度0、終點弧度2PI、畫的方向0逆1正)
CGPathAddArc(path, NULL, 200, 200, 100, 0, M_PI * 2, 1);
//將路徑添加到上下文
CGContextAddPath(ctx, path);
//修改圖形狀態參數
CGContextSetRGBStrokeColor(ctx, 0.5, 0.5, 0.9, 1.0);
//筆顏色
CGContextSetLineWidth(ctx, 10);
//線條寬度
//渲染上下文
CGContextStrokePath(ctx);
|
3)使用UIBezierPath建立路徑di
1
2
3
4
5
6
7
|
//建立路徑
UIBezierPath * path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(100, 100, 200, 200)];
//修改圖形狀態參數
[[UIColor colorWithRed:0.5 green:0.5 blue:0.9 alpha:1.0] setStroke];
//筆顏色
[path setLineWidth:10];
//線條寬度
//渲染
[path stroke];
|
以上三種方式均可以實現繪製,經過比較咱們能夠發現使用UIBezierPath建立路徑的形式是最簡潔且最直觀的,推薦使用UIBezierPath,在之後的動畫中咱們也將更多地應用UIBezierPath到動畫的實現中。