UIView 具备处理触摸事件的能力,并且支持基于Core Graphics 绘图.来实现仿射变换(比如旋转缩放平移等).或者一些简单的滑动/渐变的动画....也能管理子视图的位置.甚至CALayer 是有很多方法和属性来做动画处理和变换处理.
但是,CALayer与UIView在功能上的区别在哪儿CALayer 不处理用户交互....实际上,这背后的关联的图层才是真正用来在屏幕上显示和做动画的.UIView 就是对CALayer图层的封装,提供用户交互接口....为何开发者要使用CALayer 根据刚刚的描述,既然CALayer 只是UIView 的内部实现细节,那为何在要来使用或者学习它?...图层不能处理触摸事件,同样也要视图不能做的事情:
阴影,圆角,颜色边框
3D变换
非矩形范围
透明遮罩
多级非线性动画
CALayer's function
除了CALayer 类,CoreAnimation