码迷,mamicode.com
首页 > 其他好文 > 详细

CAShapeLayer

时间:2016-07-05 12:14:39      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:

一、关于CAShapeLayer

  1.CAShapeLayer 继承于 CALayer 属于CoreAnimation框架(通过GPU来渲染图形),所以 CAShapeLayer 相对于 CoreGraphics 框架(使用CPU绘制图形)下的DrawRect绘图方法更高效,节省内存。

  2.CAShapeLayer 的使用需要为其设置 path,一般使用 UIBezierPath 或 CGMutablePathRef 为其提供path。如果绘制动态图形可以使用 CADisplayLink 来产生变化的path。

  3.CAShapeLayer 的 path 是闭合封闭的,绘制时会对你提供的非闭合路径自动封闭。

  4.CAShapeLayer 本身是没有形状,它更具提供的 path 去绘制形状。CALayer 初始化后则是矩形的。

二、使用示例

  1.使用 UIBezierPath 提供 path 绘制静图形

- (void)darwStaticShapeLayer{
    //创建出CAShapeLayer
    self.shapeLayer = [CAShapeLayer layer];
    self.shapeLayer.anchorPoint = self.view.center;
    //填充颜色为ClearColor
    self.shapeLayer.fillColor = [UIColor clearColor].CGColor;
    //设置线条的宽度和颜色
    self.shapeLayer.lineWidth = 4.0f;
    self.shapeLayer.strokeColor = [UIColor redColor].CGColor;
    //绘制的起点和终点 range[0,1]
    self.shapeLayer.strokeStart = 0;
    self.shapeLayer.strokeEnd = 0.75;
    //创建出圆形贝塞尔曲线
    UIBezierPath *circlePath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(100, 100, 150, 150)];
    
    //设置CAShapeLayer的path
    self.shapeLayer.path = circlePath.CGPath;
    //显示
    [self.view.layer addSublayer:self.shapeLayer];
}

   2.使用 CGMutablePathRef 提供 path 绘制动画

 

CAShapeLayer

标签:

原文地址:http://www.cnblogs.com/moyazi/p/5643015.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!