iOS 簡單的使用UIBezierPath繪製

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繪圖是否是至關的簡單。固然簡單的使用也能夠有很炫的效果,具體你能夠自行查閱文檔,裏面能夠有不少變化哦。

相關文章
相關標籤/搜索