美文网首页
CALayer和 UIView的区别和联系

CALayer和 UIView的区别和联系

作者: 慧业 | 来源:发表于2022-04-23 11:37 被阅读0次

首先UIView可以响应事件,layer不可以。

1、在屏幕上能看得见摸得着的东西基本上都是UIView,如:按钮、文本标签、文本输入框,图标等等,都是UIView;

2、其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层;

3、当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的图层上,绘图完毕后,系统会将图层拷贝到屏幕上,于是UIView的显示就完成了;

4、UIView本身不具备显示的功能,是它内部的层才有显示功能,对比CALayer,UIView多了一个事件处理的功能;

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

6、当然,CALayer的性能会高一点,因为它少了事件处理的功能,更轻量级;

7、所有非RootLayer,也就是手动创建的CALayer对象,都存在着隐式动画;

8、CAL ayer有position和anchorPoint;

UIView封装的动画执行完毕之后不会反弹,即如果是通过CALayer核心动画改变layer的位置状态,表面上看虽然已经改变了,但是实际上它的位置是没有改变的。

CALayer有两个非常重要的属性:position和anchorPoint。

其中position用来设置CALayer在父层中的位置,以父层的左上角为原点(0,0)。

anchorPoint:称为“定位点” “锚点”,决定着CALayer身上的哪个点会在position属性所指的位置,以自己的左上角为原点(0,0),它的x,y取值范围都是0~1,默认是(0.5, 0.5)。

相关文章

网友评论

      本文标题:CALayer和 UIView的区别和联系

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