iOS 簡單的使用UIBezierPath繪製

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繪圖是不是相當的簡單。當然簡單的使用也可以有很炫的效果,具體你可以自行查閱文檔,裏面可以有很多變化哦。

發佈了23 篇原創文章 · 獲贊 2 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章