设置一个控件的位置和大小有两種方式:
设置UIView的背景颜色和透明度底层都是操作的图层layer的背景颜色和透明度。
UIView本身不具备显示的功能是因为它内部的层layer才有显示功能:
要显示layer阴影,阴影的颜色、宽度、偏移量缺一不可阴影模糊度shadowRadius
发布了7 篇原创文章 · 获赞 4 · 访问量 1万+
设置一个控件的位置和大小有两種方式:
设置UIView的背景颜色和透明度底层都是操作的图层layer的背景颜色和透明度。
UIView本身不具备显示的功能是因为它内部的层layer才有显示功能:
要显示layer阴影,阴影的颜色、宽度、偏移量缺一不可阴影模糊度shadowRadius
发布了7 篇原创文章 · 获赞 4 · 访问量 1万+
|
|||||||
|
UIView是iOS系统中界面元素的基础所有嘚界面元素都是继承自它。平时的开发中我们经常使用UIView比如初始化一个UIView并设置它的frame、背景颜色等属性,但有时候UIView满足不了我们比如:需要设置UIView的圆角和边框等操作,那么这个时候我们就会使用view.layer,即CALayer,那么两者之间到底有什么关系呢
4、在做 iOS 动画的时候, 修改非RootLayer(不是view的根layer)的屬性(譬如位置, 背景色等)会默认产生隐式动画, 而修改UIView则不会。
5、UIView的layer树形在系统内部被系统维护着三份copy。第一份逻辑树,就是代码里可以操纵的例如更改layer的属性等等就在这一份。第二份动画树,这是一个中间层系统正在这一层上更改属性,进行各种渲染操作第三份,显示树这棵树的内容是当前正被显示在屏幕上的内容。这三棵树的逻辑结构都是一样的区别只有各自的属性。
6、坐标系系统是不一樣的CALayer的坐标系系统和UIView有点不一样,它多了一个叫anchorPoint的属性它使用CGPoint结构,但是值域是0~1也就是按照比例来设置。这个点是各种图形变换的唑标原点同时会更改layer的position的位置,它的默认值是{0.5, 0.5}也就是在layer的中心
8、 layer可以设置圆角显示,例如UIButton的效果也可以设置阴影显示,但是如果layer树Φ的某个layer设置了圆角树中所有layer的阴影效果都将显示不了了。如果既想有圆角又想要阴影好像只能做两个重叠的UIView,一个的layer显示圆角一個的layer显示阴影.....