0
下面的问题是给缩放动画的持续时间会覆盖旋转动画。同时动画不同持续时间的图层变换的旋转和缩放比例
是否有其他方法可以同时为CALayer的缩放和旋转设置不同的持续时间?
// Animate arrowhead rotation
CATransaction.begin()
CATransaction.setAnimationDuration(0.2)
CATransaction.setAnimationTimingFunction(CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseOut))
let arrowAngle = atan2(path.currentPoint.y - previousPoint.y,
path.currentPoint.x - previousPoint.x) + (.pi * 0.5)
let rotationZ = CATransform3DRotate(CATransform3DIdentity, arrowAngle, 0, 0, 1)
arrowhead.transform = rotationZ
CATransaction.commit()
// Animate arrowhead scale
CATransaction.begin()
CATransaction.setAnimationDuration(1.5)
CATransaction.setAnimationTimingFunction(CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut))
arrowhead.transform = CATransform3DConcat(rotationZ, arrowheadTransformScale)
CATransaction.commit()
@马特有什么办法来实现动画图层的缩放和旋转不同持续时间? – dxb
@matt我也试图用这种技术'arrowhead.setValue(arrowAngle,forKeyPath:“transform.rotation.z”)来转换特定的转换方面' – dxb
@matt不需要整个动画使用'kCAMediaTimingFunctionLinear' ? – dxb