Как определить CAAnimation в делегате animationDidStop?

Я использую TmxWebUpdate. Это свободно, просто и дает Вам хороший контроль над процессом. Я на самом деле владею Пакетом Компонента TMS с TWebUpdate, но никогда действительно нашел серьезное основание переключиться.

Редактирование: Свяжитесь обновленный

102
задан DarkDust 5 September 2011 в 12:42
поделиться

3 ответа

Batgar ' техника слишком сложна. Почему бы не воспользоваться параметром forKey в addAnimation? Он был предназначен именно для этого. Просто возьмите вызов setValue и переместите ключевую строку в вызов addAnimation. Например:

[[hearingAidHalo layer] addAnimation:animation forKey:@"Throb"];

Затем в обратном вызове animationDidStop вы можете сделать что-то вроде:

if (theAnimation == [[hearingAidHalo layer] animationForKey:@"Throb"]) ...
91
ответ дан 24 November 2019 в 04:29
поделиться

ИМХО, использование пары "ключ-значение" Apple - это элегантный способ сделать это: он специально предназначен для того, чтобы разрешить добавление данных приложения к объектам.

Другой, менее элегантный способ - сохранить ссылки на объекты анимации и выполнить сравнение указателей для их идентификации.

0
ответ дан 24 November 2019 в 04:29
поделиться

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

CAAnimation *anim = ...
anim.removedOnCompletion = NO;

Если вы этого не сделаете, ваша анимация будет удалена перед завершением, и обратный вызов не найдет ее в словаре.

33
ответ дан 24 November 2019 в 04:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: