我想知道为什么当我尝试使用基本动画设置path
的{{1}}属性时,它会起作用,但是当我尝试使用事务进行动画时却没有。
我只使用交易成功动画了其他CAShapeLayer
属性。这是我目前的代码:
animatable
在 CATransaction.begin()
CATransaction.setAnimationDuration(2.0)
path = scalePath() // a scaled version of the original path
CATransaction.commit()
的扩展名内使用此(非常硬编码)函数缩放原始路径获取新路径:
CAShapeLayer
你能发现任何问题吗?
答案 0 :(得分:1)
答案很简单,但有点令人不满意:虽然path
属性是可动画的,但它不支持隐式动画。这在the documentation for the path property:
与大多数可设置动画的属性不同,
path
(与所有CGPathRef
可设置动画的属性一样)不支持隐式动画。
“显式”动画是一个动画对象(例如CABasicAnimation
),通过调用图层上的-addAnimation:forKey:
将显式添加到图层中。
“隐式”动画是由于更改动画属性而导致隐式的动画。
即使在事务中更改了属性,动画也会被视为隐式动画。