iOS动画编程:从基础到高级应用
1. 重写默认动作
可以通过重写 defaultAction(forKey:)
方法来实现自定义的动画效果。以下代码展示了如何在 CALayer
子类中实现当设置 contents
属性时,自动触发从左侧的推入过渡效果:
override class func defaultAction(forKey key: String) -> CAAction? {
if key == #keyPath(contents) {
let tr = CATransition()
tr.type = .push
tr.subtype = .fromLeft
return tr
}
return super.defaultAction(forKey:key)
}
当需要从 action(for:forKey:)
或 defaultAction(forKey:)
方法返回 NSNull()
时,需要将其转换为 CAAction
类型以消除编译器警告。
2. 使自定义属性隐式动画化
2.1 实现步骤
要使自定义层的 thickness
属性能够进行隐式动画,需要完成以下步骤:
1. 实现