UIBezierPath這個類呢主要用於繪圖。
以前的項目中須要繪圖的部分都是用Core Graphics來繪製,OC是個人第一門語言,因此對於Core Graphics的C語言API不太適應,最近發現原來蘋果的UIKit中已經對Core Graphics作了一些簡單的封裝,UIBezierPath就是其中一個。UIBezierPath已經徹底知足了我對繪圖的一些基本要求。 code
UIBezierPath的好處顯而易見。
* 首先它是OC語言的,相對於c語言的Core Graphics來講更爲平易近人。 * 其次它可以使用ARC,若是咱們直接使用CGPathRef的話,還要本身負責在合適的時候釋放。 文檔
如今我就根據本身的使用來作一下簡單記錄。 it
UIBezierPath的使用至關簡單,分爲三步:
* 建立path * 添加路徑到path * 將path繪製出來 class
例如咱們來畫條線: 渲染
// 建立path UIBezierPath *path = [UIBezierPath bezierPath]; // 添加路徑[1條點(100,100)到點(200,100)的線段]到path [path moveToPoint:CGPointMake(100 , 100)]; [path addLineToPoint:CGPointMake(200, 100)]; // 將path繪製出來 [path stroke];
一樣的咱們也能夠畫一個圓 方法
UIBezierPath *path = [UIBezierPath bezierPath]; [path addArcWithCenter:self.center radius:100.0 startAngle:0.0 endAngle:180.0 clockwise:YES]; [path stroke];
除了畫線、畫圓以外,咱們還能夠畫其餘各類圖形。 具體的方法你均可以在UIBezierPath的頭文件裏面找到,而使用過程和Core Graphics基本一致。 im
其中有一個地方是須要咱們注意的。就是顏色的設置。 next
UIBezierPath顏色的設置並無包含在本身類中,而是經過UIColor直接設置的。
例: 項目
// 設置描邊色 [[UIColor blueColor] setStroke]; // 設置填充色 [[UIColor redColor] setFill];
看上去是UIColor的方法,其實也是對於CGContextRef的渲染,最終仍是做用到CGConextRef上的
而UIBezierPath其實也就是對CGPathRef的封裝 img
因此UIBezierPath經過UIColor的方法來設置顏色也就不奇怪了。
由於UIColor和UIBezierPath最終仍是經過Core Graphics的方法來繪圖的,只不過蘋果又封裝了一層OC。
最後結合上面那個畫圓的例子,把顏色添加進去,再來看下效果。
//建立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繪圖是否是至關的簡單。固然簡單的使用也能夠有很炫的效果,具體你能夠自行查閱文檔,裏面能夠有不少變化哦。