Что лучше всего описывает параметр CAPropertyAnimation animationWithKeyPath:?

Я хотел бы лучше понять этот параметр в

+ (id)animationWithKeyPath:(NSString *)keyPath

Они просто говорят: "Ключевой путь свойства, которое нужно анимировать".

В некоторых примерах я вижу такие вещи, как:

CABasicAnimation *fadeInAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];

CAKeyframeAnimation *animatedIconAnimation = [CAKeyframeAnimation animationWithKeyPath: @"frameOrigin"];

Есть ли список или эмпирическое правило для определения правильного параметра пути к ключу? то есть, когда я хочу анимировать ширину фрейма, какие правила мне нужно будет следовать, чтобы перейти к правильной строке параметра пути ключа?

Ответы

Ответ 1

Хорошо, например, если вы анимируете свойство layer UIView, а затем проверьте CALayer.h - здесь вы можете найти непрозрачность свойства, а встроенный doc упоминает, что он является анимированным. Или frameOrigin в NSView.

Связка свойств анимативна, для iphone:

https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreAnimation_guide/AnimatableProperties/AnimatableProperties.html

и mac:

http://developer.apple.com/mac/library/documentation/cocoa/conceptual/CoreAnimation_guide/Articles/AnimProps.html#//apple_ref/doc/uid/TP40005942-SW4

И затем есть некоторые расширения:

http://developer.apple.com/mac/library/documentation/cocoa/conceptual/CoreAnimation_guide/Articles/KVCAdditions.html

чтобы дать вам:

[CABasicAnimation animationWithKeyPath: @ "transform.scale.x" ];

Ответ 2

Чтобы понять, что такое "ключевой путь", вы должны немного узнать о кодировании по ключевым словам (KVC). Для начала вам следует прочитать Основы кодирования ключевого значения, но в конечном итоге вы должны прочитать весь Руководство по программированию кодирования по ключевому значению. Как только вы поймете KVC, другие понятия, такие как Key-Value Observing (KVO), будут намного легче понять.

Ответ 3

CABasicAnimation animationWithKeyPath Types

При использовании CABasicAnimation из QuartzCore Framework в Objective-C необходимо указать animationWithKeyPath. Это длинная строка и не легко указана в классе CABasicAnimation, CAPropertyAnimation или CAAnimation. В итоге я нашел удобный график в руководстве по программированию базовой анимации в справочной библиотеке iPhone OS Apple. Надеюсь, это поможет сэкономить время, по крайней мере, для меня.

От: http://www.adamzucchi.com/blog/?p=24

Ответ 4

Я использовал анимациюWithKeyPath: @ "hidden" и animationWithKeyPath: @ "strokeEnd". Они не указаны в ссылке ниже, поэтому я думаю, что должно быть еще много.