美文网首页
关于CAShapeLayer、UIBezierPath、Draw

关于CAShapeLayer、UIBezierPath、Draw

作者: ElaineYin | 来源:发表于2018-05-15 12:49 被阅读17次
    CAShapeLayer & CALayer
    1. CAShapeLayer继承自CALayer,因此,可使用CALayer的所有属性。CAShapeLayer有不同于CALayer的属性,它从CALayer继承而来的属性在绘制时是不起作用的。
    2. 普通CALayer在被初始化的时候是需要给一个frame的值的,这个frame值一般都与给定view的bounds值一致,它本身是有形状的,而且是矩形。CAShapeLayer初始化时也需要指定frame值,但它本身没有形状,它的形状来源于其属性path。
    3. CAShapeLayer高效使用内存。一个CAShapeLayer不需要像普通CALayer一样创建一个寄宿图形,所以无论有多大,都不会占用太多的内存。
    4. CAShapeLayer不会被图层边界剪裁掉。一个CAShapeLayer可以在边界之外绘制。图层路径不会像在使用Core Graphics的普通CALayer一样被剪裁掉。
    CAShapeLayer & UIBezierPath
    1. CAShapeLayer是基于贝塞尔曲线而存在的。CAShapeLayer依附于一个给定的path(路径),必须给与path,path由贝塞尔曲线提供,CAShapeLayer在提供的路径中进行渲染。路径会闭环,所以绘制出了形状。
    CAShapeLayer & DrawRect
    1. CAShapeLayer属于CoreAnimation框架,通过GPU来渲染图形,节省性能。动画渲染直接提交给手机GPU,不消耗内。
    2. DrawRect:DrawRect属于CoreGraphic框架,占用CPU,消耗性能大。

    相关文章

      网友评论

          本文标题:关于CAShapeLayer、UIBezierPath、Draw

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