美文网首页
CAShapeLayer

CAShapeLayer

作者: 安米汝 | 来源:发表于2019-02-12 10:25 被阅读0次

    (1)1,CAShapeLayer继承自CALayer,可使用CALayer的所有属性

              2,CAShapeLayer需要和贝塞尔曲线配合使用才有意义。

    (2)关于CAShapeLayer和DrawRect的比较

             DrawRect:DrawRect属于CoreGraphic框架,占用CPU,消耗性能大

             CAShapeLayer:CAShapeLayer属于CoreAnimation框架,通过GPU来渲染图形,节省性能。动画渲染直接提交给手机GPU,不消耗内存。gpu是图像处理器。

    (3)贝塞尔曲线与CAShapeLayer的关系

          1,CAShapeLayer中shape代表形状的意思,所以需要形状才能生效

         2,贝塞尔曲线可以创建基于矢量的路径

          3,贝塞尔曲线给CAShapeLayer提供路径,CAShapeLayer在提供的路径中进行渲染。路径会闭环,所以绘制出了Shape

        4,用于CAShapeLayer的贝塞尔曲线作为Path,其path是一个首尾相接的闭环的曲线,即使该贝塞尔曲线不是一个闭环的曲线

        5,画出一个圆代码

    //创建出CAShapeLayer

    self.shapeLayer = [CAShapeLayer layer];

    self.shapeLayer.frame = CGRectMake(0, 0, 100, 100);

    //设置shapeLayer的尺寸和位置 一般和它显示的view bounds 一样

    self.shapeLayer.position = self.view.center;

    self.shapeLayer.fillColor = [UIColor clearColor].CGColor;//填充颜色为ClearColor

    //设置线条的宽度和颜色

    self.shapeLayer.lineWidth = 1.0f;

    self.shapeLayer.strokeColor = [UIColor redColor].CGColor;

    //创建出圆形贝塞尔曲线

    UIBezierPath *circlePath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, 50, 50)];

    //让贝塞尔曲线与CAShapeLayer产生联系

    self.shapeLayer.path = circlePath.CGPath;

    //添加并显示

    [self.view.layer addSublayer:self.shapeLayer];}

       6,圆形加载图

    相关文章

      网友评论

          本文标题:CAShapeLayer

          本文链接:https://www.haomeiwen.com/subject/qiutvttx.html