21、iOS动画编程:从隐式到显式的全面解析

iOS动画编程:从隐式到显式的全面解析

1. 隐式图层动画

所有动画归根结底都是图层动画。之前提到的视图动画,其底层也是基于图层动画实现的。而直接对图层进行动画操作,有时简单到只需设置一个图层属性。当改变 CALayer 的可动画属性时,系统会自动将其解释为一个动画请求,即图层属性改变时默认会触发动画,多个属性的改变会被视为同一个动画的一部分,这种机制被称为隐式动画。

例如,之前用图层构建了一个指南针界面,若有一个箭头图层 arrow ,通过改变其 transform 属性来旋转箭头时,箭头的旋转会自动以动画形式呈现:

arrow.transform = CATransform3DRotate(arrow.transform, .pi/4.0, 0, 0, 1)

不过,在某些情况下隐式图层动画不会发生,常见的有以下两种:
- 视图的底层图层 :隐式图层动画不会作用于 UIView 的底层图层。若要直接对 UIView 的底层图层进行动画操作,需使用显式图层动画。
- 图层树准备期间 :在图层创建、配置并添加到界面的过程中,隐式图层动画不会生效。只有当改变已存在于界面中的图层的可动画属性时,隐式动画才会起作用。

2. 可动画的图层属性

文档中列出的 CALayer 可动画

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值