Что лучше всего описывает параметр 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". Они не указаны в ссылке ниже, поэтому я думаю, что должно быть еще много.