2016-12-12 9 views
2

Возможно ли использовать расширенный путь ключа (как описано here) для свойства CATransform3D в Swift 3 с новым ключевым словом #keyPath?Ключ-путь CATransform3D с #keyPath

Другими словами, чтобы заменить

let scaleAnimation = CABasicAnimation(keyPath: "transform.scale") 

с чем-то вроде

let scaleAnimation = CABasicAnimation(keyPath: #keyPath(CALayer.transform.???)) 

ответ

5

ИМХО 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

 Смежные вопросы

  • Нет связанных вопросов^_^