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