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()
@mattを異なる期間でレイヤーのスケールと回転をアニメーション達成する方法はありますか? – dxb
@mattこのテクニックで変換の特定の側面をターゲットにしました。arrowhead.setValue(arrowAngle、forKeyPath: "transform.rotation.z") ' – dxb
@mattアニメーション全体に' kCAMediaTimingFunctionLinear' ? – dxb