ИМХО CAValueFunction следует использовать, но не работает хорошо для меня ...
let scaleAnimation = CABasicAnimation(keyPath: "transform.scale")
- >
let scaleAnimation = CABasicAnimation(keyPath: #keyPath(CALayer.transform))
scaleAnimation.valueFunction = CAValueFunction(name: kCAValueFunctionScale)
и
let rotationAnimation = CABasicAnimation(keyPath: "transform.rotation")
->
let rotationAnimation = CABasicAnimation(keyPath: #keyPath(CALayer.transform))
rotationAnimation.valueFunction = CAValueFunction(name: kCAValueFunctionRotateZ)
т.д.
rotation.x
->kCAValueFunctionRotateX
rotation.y
->kCAValueFunctionRotateY
rotation.z
->kCAValueFunctionRotateZ
rotation
->kCAValueFunctionRotateZ
scale.x
->kCAValueFunctionScaleX
scale.y
->kCAValueFunctionScaleY
scale.z
->kCAValueFunctionScaleZ
scale
->kCAValueFunctionScale
translation.x
->kCAValueFunctionTranslateX
translation.y
->kCAValueFunctionTranslateY
translation.z
->kCAValueFunctionTranslateZ
translation
->kCAValueFunctionTranslate