Какова цель параметра "forKey" при добавлении CAAnimation к слою? - PullRequest
12 голосов
/ 07 декабря 2011

Я очень новичок в программировании на iOS, Objective-C и программировании в целом, поэтому, пожалуйста, извините, если вы находите этот вопрос разочаровывающе простым.

Документы на веб-сайте Apple, как правило, великолепны, но у меня возникают некоторые проблемы, когда я пытаюсь обернуть голову вокруг некоторых частей Core Animation. Я хочу явно оживить позицию CALayer. Из того, что я понимаю, мне нужно создать объект CABasicAnimation, настроить его с помощью fromValue, toValue и т. Д., А затем добавить его в слой, используя этот метод:

- (void)addAnimation:(CAAnimation *)anim forKey:(NSString *)key

Моя проблема в том, что я понятия не имею, каково значение параметра forKey:. Из того, что я видел в примерах онлайн, это не требуется? Я полагаю, это как-то связано с кодированием значения ключа? (Я все еще не очень понимаю это.) Даже если это не требуется, я хотел бы знать, что это такое, чтобы я мог воспользоваться его полезностью в моем приложении.

Спасибо за любую помощь, которую вы можете предложить.

Ответы [ 3 ]

11 голосов
/ 07 декабря 2011

Позволяет переопределить анимацию.Например, неявные анимации, созданные путем изменения неявно анимируемого свойства (например, opacity), будут использовать имя свойства в качестве ключа.Таким образом, если вы измените его снова (для создания новой анимации), новая анимация заменит старую вместо попытки запустить обе анимации одновременно.

6 голосов
/ 07 декабря 2011

CALayer имеет несколько методов для получения анимаций, которые были добавлены в слой.Если вы хотите получить, заменить или удалить определенную анимацию из CALayer , вы должны указать ей ключ при вызове animationForKey: или removeAnimationForKey :.

Вам не нужно указывать ключ, вы можете использовать nil для ключа, если у вас нет особой необходимости найти определенную анимацию по ключу.

5 голосов
/ 07 декабря 2011

Это просто какой-то идентификатор вашей анимации.Вы можете вызвать методы animationForKey: и removeAnimationForKey: позже с указанным ключом.

Также, поскольку слой может иметь только одну анимацию на уникальный ключ, вы можете использовать это значение в качестве идентификатора для некоторых типов анимаций, и все методы ...ForKey: будут возвращать / удалять / заменять большинство текущих анимаций для данного типа анимации/key.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...