使用#keyPath CATransform3D密钥路径

Rad*_*dek 6 transform scale cabasicanimation catransform3d swift3

是否有可能使用增强的关键路径(如描述在这里与新#keyPath关键字)的CATransform3D财产斯威夫特3?

换句话说就是替换

let scaleAnimation = CABasicAnimation(keyPath: "transform.scale")
Run Code Online (Sandbox Code Playgroud)

喜欢的东西

let scaleAnimation = CABasicAnimation(keyPath:  #keyPath(CALayer.transform.???))
Run Code Online (Sandbox Code Playgroud)

JMI*_*JMI 11

应该使用CAValueFunction.

let scaleAnimation = CABasicAnimation(keyPath: "transform.scale")
Run Code Online (Sandbox Code Playgroud)

- >

let scaleAnimation = CABasicAnimation(keyPath: #keyPath(CALayer.transform))
scaleAnimation.valueFunction = CAValueFunction(name: kCAValueFunctionScale)
Run Code Online (Sandbox Code Playgroud)

let rotationAnimation = CABasicAnimation(keyPath: "transform.rotation")
Run Code Online (Sandbox Code Playgroud)

- >

let rotationAnimation = CABasicAnimation(keyPath: #keyPath(CALayer.transform))
rotationAnimation.valueFunction = CAValueFunction(name: kCAValueFunctionRotateZ)
Run Code Online (Sandbox Code Playgroud)

等等

  • 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