После завершения анимации хочется вызвать несколько методов - PullRequest
6 голосов
/ 05 января 2012

В моем приложении для iPhone

Я делаю определенные анимации. как

[UIView beginAnimations:@"stalk" context:nil];
    [UIView setAnimationDuration:1];
    [UIView setAnimationBeginsFromCurrentState:YES];
    self.frame=originalSelf;
    [UIView commitAnimations];

После завершения этой анимации я хочу вызвать несколько методов ...

Я знаю что-то около анимации блока или

Уведомление DidStopAnimation

Как мне это сделать .... Спасибо ..

Ответы [ 3 ]

11 голосов
/ 05 января 2012

В iOS 4 и более поздних версиях рекомендуется использовать блоки для этой цели:

[UIView animateWithDuration:1 
                     animations:^{
                         self.frame=originalSelf;} 
                     completion:^(BOOL finished){

                        //My method call;
                     }
     ];
5 голосов
/ 05 января 2012

Попробуйте использовать

[UIView beginAnimations:@"stalk" context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(afterAnimationStops)]
self.frame=originalSelf;
[UIView commitAnimations];

И тогда вы можете реализовать метод

-(void)afterAnimationStops{

}
2 голосов
/ 05 января 2012

Используйте это:

animateWithDuration:animations:completion:

Вот еще немного информации: http://developer.apple.com/library/IOs/#documentation/UIKit/Reference/UIView_Class/UIView/UIView.html

Вот пример:

[UIView animateWithDuration:1.0 animations:^{self.frame=originalSelf;} completion:^(BOOL finished){/*have your completion code here*/}];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...