UIView于CALayer的主要的关系

来源:互联网 发布:python串口数据采集 编辑:程序博客网 时间:2024/04/29 09:13
我们应该都知道每个UIView都包含了一个CALayer。比如给一个View切个圆角:
view.layer.cornerRadius = 5.0f;//加个边框view.layer.borderWidth = 1.0f;view.layer.borderColor = [UIColor redColor].CGColor;

CALayer是QuartzCore库内的类,是iOS上最基本的绘制单元;而UIView只是CALayer之上的封装,更准确的说,UIView是CALayer的简版封装,加上事件处理的集合类。


UIView的渲染实质就是这个layer的渲染。UIView其实是把常用的接口(属性和方法)暴露出来了,让UIView更为易用。
其次,我们知道iOS平台的Cocoa Touch是源于OS X平台的Cocoa,是在Cocoa的基础上添加了适用于移动手机设备的手势识别、动画等特性;但从底层实现上来说,Cocoa Touch与Cocoa共用一套底层的库,其中就包括了QuartzCore.framework;但QuartzCore.framework一开始就算为OS X设计的,所以其中有部分特性不适合做移动设备开发的。因此,我们也不难理解为何UIView/NSView在CALayer上做了一层封装。
0 0