UIView和CALayer学习

1.什么是UIView?

在ios当中,所有的视图都是从一个叫做UIView的基类派生而来,UIView只可以处理触摸事件,可以支持基于CoreCraphics绘图,可以做仿射变换(例如旋转或者缩放),或者简单的类类似于滑动或者渐变的动画.

2.什么是CALayer?

CALayer 类在概念上和UIView类似,同样也是一些被层级关系树管理的矩形块,同样也是包含一些内容(像图片,文本或者背景色),管理子图层的位置.它们有一些方法和属性用来做动画和变换,和UIView最大的不同是CALayer不能处理用户的交互.

3.UIView和CALayer

每个UIView都有一个CAlayer实例的图层属性,也就是所谓的backinglayer,视图的职责就是创建并管理这个图层.以确保当子视图在层级关系中添加或者移除的时候,他们关联的图层也同样对应在层级关系树当中有相同的操作.

CALayer和UIView最大的不同是CALayer不能处理用户的交互.

CALayer 可以说是UiView的内部实现细节,虽然苹果为UIView提供了简洁优美的接口,但是UIView也不可避免的带来了一些灵活上的缺陷,如果你略想对底层做一些改变,或者一些苹果没有在UIView上面实现的接口功能,这时除了介入CoreAnimation别无选择.

UIView 没有暴露出来的CALayer的功能:


UIView和CALayer学习_第1张图片

你可能感兴趣的:(UIView和CALayer学习)