UIBezierPath 简单使用

UIBezierPath的好处显而易见。  
* 首先它是`OC`语言的,相对于c语言的Core Graphics来说更为平易近人。
* 其次它能够使用`ARC`,如果我们直接使用CGPathRef的话,还要自己负责在合适的时候释放。


UIBezierPath的使用相当简单,分为三步:  
* 创建path
* 添加路径到path
* 将path绘制出来

例如我们来画条线:
```objc
    // 创建path
    UIBezierPath *path = [UIBezierPath bezierPath];
    
    // 添加路径[1条点(100,100)到点(200,100)的线段]到path
    [path moveToPoint:CGPointMake(100 , 100)];
    [path addLineToPoint:CGPointMake(200, 100)];
    
    // 将path绘制出来
    [path stroke];
```
同样的我们也可以画一个圆
```objc
    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直接设置的。  
例:
```objc
    // 设置描边色
    [[UIColor blueColor] setStroke];
    // 设置填充色
    [[UIColor redColor] setFill];
```

看上去是UIColor的方法,其实也是对于CGContextRef的渲染,最终还是作用到CGConextRef上的  
而UIBezierPath其实也就是对CGPathRef的封装

所以UIBezierPath通过UIColor的方法来设置颜色也就不奇怪了。

因为UIColor和UIBezierPath最终还是通过Core Graphics的方法来绘图的,只不过苹果又封装了一层OC。

最后结合上面那个画圆的例子,把颜色添加进去,再来看下效果。
```
    //创建path
    UIBezierPath *path = [UIBezierPath bezierPath];
    
    // 添加圆到path
    [path addArcWithCenter:self.center radius:100.0 startAngle:0.0 endAngle:180.0 clockwise:YES];
    
    // 设置描边宽度(为了让描边看上去更清楚)
    [path setLineWidth:5.0];

    //设置颜色(颜色设置也可以放在最上面,只要在绘制前都可以)
    [[UIColor blueColor] setStroke];
    [[UIColor redColor] setFill];
    
    // 描边和填充
    [path stroke];
    [path fill];
```
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值