Выполнить код после завершения анимации UIView? - PullRequest
2 голосов
/ 03 февраля 2011

Каков наилучший способ выполнения кода после завершения анимации (например, удалить представление из суперпредставления после его исчезновения)? Я вижу setAnimationDidStopSelector:, но не знаю, как его использовать.

Ответы [ 2 ]

13 голосов
/ 03 февраля 2011

Это очень просто.Вы должны определить метод как

-(void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
//do smth
}

Затем просто позвоните

[UIView beginAnimations: nil context: nil];
[UIView setAnimationDelegate: self]; //or some other object that has necessary method
[UIView setAnimationDidStopSelector: @selector(animationDidStop:finished:context:)];

Вы можете опубликовать представление, которое хотите удалить.Для этого вы должны сделать это:

[UIView beginAnimations: nil context: someView];

и затем добавить в ваш обратный вызов:

   -(void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
        [(UIView*)context removeFromSuperView];
    }
0 голосов
/ 03 февраля 2011

Я сделал это для лейбла, который хотел сделать сальто.Он запускает анимацию, но затем хочет запустить другую после первого завершения.На ваш вопрос, вместо запуска другой анимации вы можете просто выпустить и освободить все, что больше не нужно.

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