UIBezierPath這個類呢主要用於繪圖。
之前的項目中需要繪圖的部分都是用Core Graphics來繪製,OC是我的第一門語言,所以對於Core Graphics的C語言API不太適應,最近發現原來蘋果的UIKit中已經對Core Graphics做了一些簡單的封裝,UIBezierPath就是其中一個。UIBezierPath已經完全滿足了我對繪圖的一些基本要求。
UIBezierPath的好處顯而易見。
* 首先它是OC語言的,相對於c語言的Core Graphics來說更爲平易近人。 * 其次它能夠使用ARC,如果我們直接使用CGPathRef的話,還要自己負責在合適的時候釋放。
現在我就根據自己的使用來做一下簡單記錄。
使用
UIBezierPath的使用相當簡單,分爲三步:
* 創建path * 添加路徑到path * 將path繪製出來
例如我們來畫條線:
1
2
3
4
5
6
7
|
//
創建path UIBezierPath
*path = [UIBezierPath bezierPath]; //
添加路徑[1條點(100,100)到點(200,100)的線段]到path [path
moveToPoint:CGPointMake(100 , 100)]; [path
addLineToPoint:CGPointMake(200, 100)]; //
將path繪製出來 [path
stroke]; |
同樣的我們也可以畫一個圓
1
2
3
|
UIBezierPath
*path = [UIBezierPath bezierPath]; [path
addArcWithCenter:self.center radius:100.0 startAngle:0.0 endAngle:180.0 clockwise:YES]; [path
stroke]; |
除了畫線、畫圓之外,我們還可以畫其他各種圖形。 具體的方法你都可以在UIBezierPath的頭文件裏面找到,而使用過程和Core Graphics基本一致。
其中有一個地方是需要我們注意的。就是顏色的設置。
UIBezierPath顏色的設置並沒有包含在自己類中,而是通過UIColor直接設置的。
例:
1
2
3
4
|
//
設置描邊色 [[UIColor
blueColor] setStroke]; //
設置填充色 [[UIColor
redColor] setFill]; |
看上去是UIColor的方法,其實也是對於CGContextRef的渲染,最終還是作用到CGConextRef上的
而UIBezierPath其實也就是對CGPathRef的封裝
所以UIBezierPath通過UIColor的方法來設置顏色也就不奇怪了。
因爲UIColor和UIBezierPath最終還是通過Core Graphics的方法來繪圖的,只不過蘋果又封裝了一層OC。
最後結合上面那個畫圓的例子,把顏色添加進去,再來看下效果。
1
2
3
4
5
6
7
8
9
10
11
12
|
//創建path UIBezierPath
*path = [UIBezierPath bezierPath]; //
添加圓到path [path
addArcWithCenter:self.center radius:100.0 startAngle:0.0 endAngle:M_PI*2 clockwise:YES]; //
設置描邊寬度(爲了讓描邊看上去更清楚) [path
setLineWidth:5.0]; //設置顏色(顏色設置也可以放在最上面,只要在繪製前都可以) [[UIColor
blueColor] setStroke]; [[UIColor
redColor] setFill]; //
描邊和填充 [path
stroke]; [path
fill]; |
UIBezierPath繪圖是不是相當的簡單。當然簡單的使用也可以有很炫的效果,具體你可以自行查閱文檔,裏面可以有很多變化哦。