iOS动画编程:从隐式到显式的全面解析
1. 隐式图层动画
所有动画归根结底都是图层动画。之前提到的视图动画,其底层也是基于图层动画实现的。而直接对图层进行动画操作,有时简单到只需设置一个图层属性。当改变 CALayer 的可动画属性时,系统会自动将其解释为一个动画请求,即图层属性改变时默认会触发动画,多个属性的改变会被视为同一个动画的一部分,这种机制被称为隐式动画。
例如,之前用图层构建了一个指南针界面,若有一个箭头图层 arrow ,通过改变其 transform 属性来旋转箭头时,箭头的旋转会自动以动画形式呈现:
arrow.transform = CATransform3DRotate(arrow.transform, .pi/4.0, 0, 0, 1)
不过,在某些情况下隐式图层动画不会发生,常见的有以下两种:
- 视图的底层图层 :隐式图层动画不会作用于 UIView 的底层图层。若要直接对 UIView 的底层图层进行动画操作,需使用显式图层动画。
- 图层树准备期间 :在图层创建、配置并添加到界面的过程中,隐式图层动画不会生效。只有当改变已存在于界面中的图层的可动画属性时,隐式动画才会起作用。
2. 可动画的图层属性
文档中列出的 CALayer 可动画
超级会员免费看
订阅专栏 解锁全文
65

被折叠的 条评论
为什么被折叠?



