CALayer ---- 属性

一 . CALayer 属性列表如下

CALayer ---- 属性_第1张图片

二 . UIView和CALayer的区别和选择 

UIView和CALayer区别

1.在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),CALayer 在背后提供内容的绘制和显示;两者都有树状层级结构,layer 内部有 SubLayers,View 内部有 SubViews.但是 Layer 比 View 多了个AnchorPoint(锚点)。

2.当UIView需要显示到屏幕上时(UIView 做为 Layer 的 CALayerDelegate,View 显示内容由CALayer 的 display),会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的图层上,绘图完毕后,系统会将图层拷贝到屏幕上,于是就完成了UIView的显示。

换句话说,UIView本身不具备显示的功能,是因为它内部的图层(CALayer)才有显示功能

3.Layer 的 frame是由它的 bounds、position、anchorPoint 和 transform 共同决定的;View 的 frame只是简单的返回 Layer的 frame,同样 View 的 bounds 和 center 也是返回 Layer 的一些属性。

4.UIView 多了一个事件处理的功能,也就是说UIView 可以处理用户的触摸事件,而 CALayer 不可以。

UIView和CALayer选择

通过CALayer,也能做出和 UIImageView 一样的效果,相比较UIView多了一个事件处理的功能;

所以,如果显示出来的东西需要跟用户进行交互的话,用UIView;如果不需要进行交互,用UIView和CALayer都可以;

当然,CALayer 的性能会高一些,因为它少了事件处理的功能,更轻量级(实际开发中还是建议使用UIView,可扩展性强);

你可能感兴趣的:(CALayer ---- 属性)