CAShapeLayer,动画的动画路径

时间:2017-03-28 20:28:19

标签: ios core-animation calayer cgpath ios-animations

我想知道为什么当我尝试使用基本动画设置path的{​​{1}}属性时,它会起作用,但是当我尝试使用事务进行动画时却没有。

我只使用交易成功动画了其他CAShapeLayer属性。这是我目前的代码:

animatable

CATransaction.begin() CATransaction.setAnimationDuration(2.0) path = scalePath() // a scaled version of the original path CATransaction.commit() 的扩展名内使用此(非常硬编码)函数缩放原始路径获取新路径:

CAShapeLayer

你能发现任何问题吗?

1 个答案:

答案 0 :(得分:1)

答案很简单,但有点令人不满意:虽然path属性是可动画的,但它不支持隐式动画。这在the documentation for the path property

的讨论部分中提到
  

与大多数可设置动画的属性不同,path(与所有CGPathRef可设置动画的属性一样)不支持隐式动画。

显式与隐式动画

“显式”动画是一个动画对象(例如CABasicAnimation),通过调用图层上的-addAnimation:forKey:显式添加到图层中。

“隐式”动画是由于更改动画属性而导致隐式的动画。

即使在事务中更改了属性,动画也会被视为隐式动画。