CALayer使用(未完待续)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sacrifice123/article/details/51734831

一、什么是CALayer

在iOS系统中,你能看得到摸得着的东西基本都是UIview。比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIview。

其实UIview之所以显示在屏幕上,完全是因为它内部的一个层。

在创建UIview对象时,UIview内部会自动创建一个层(即CALayer对象),通过UIview的layer属性可以访问这个层。当UIview需要显示到屏幕上,会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的层上,绘图完毕后,系统会将层拷贝到屏幕上,于是完成了UIview的显示。


二、CALayer的简单使用

上面已经说了,UIview能显示东西完全是因为CALayer对象,因此,通过操作这个CALayer对象,可以很方便调整UIview的一些界面属性,比如:阴影,圆角大小、边框和颜色等。

CALayer是被定义在QuartzCore框架中的,因此要想使用CALayer,先要导入QuartzCore框架。


三、UIview与CALayer的选择

UIview与CALayer都可以添加一些显示界面,并且显示效果是一样的,那么我们究竟选择谁呢?

其实,对比CALayer,UIview多了一个事件处理的功能,也就是说CALayer不能处理用户的触摸事件,而UIview可以,

所以,如果显示出来的东西需要跟用户进行交互的话,用UIview;如果不需要跟用户进行交互两者皆可,

当然,CALayer的性能会高一些,因为它少了事件处理的功能,更加轻量级。


四、UIview与CALayer的其他关系

1.UIview可以通过subviews属性访问所有的子视图,类似的,CALayer也可以通过sublayers属性访问所有子层。

2.UIview可以通过superview属性访问父视图,类似的,CALayer也可以通过superlayer属性访问父层。





猜你喜欢

转载自blog.csdn.net/sacrifice123/article/details/51734831
今日推荐