a 的动画UIView
应该在视图添加到父视图后立即开始:
class myView: UIView {
override func didMoveToSuperview() {
super.didMoveToSuperview()
UIView.animate(
withDuration: duration,
delay: 0,
options: .curveLinear,
animations: {
CATransaction.begin()
CATransaction.setAnimationDuration(duration)
self.layer.colors = [color1, color2]
CATransaction.commit()
},
completion: nil
)
}
}
但是,结果是当视图在父视图中可见时动画已经结束。UIView.animate
不动画但立即设置,可能是因为视图在被调用self.layer.colors
时还不可见。didMoveToSuperview
如何让动画正常启动?