Как заставить строку кода выполняться только после интервала времени блока анимации? - PullRequest
1 голос
/ 26 мая 2010

Я поместил строку кода в блок UIAnimation. И следующая строка идет после блока анимации. Я хочу, чтобы вторая строка выполнялась только после интервала времени первого блока анимации.

Например: -

[UIView beginAnimations:@"View Flip" context:nil];
[UIView setAnimationDuration:0.5];
//First line comes here
 [self.view addSubview:subView];
 [UIView commitAnimations];

Затем 2-я строка

[subView2 removeFromSuperView];

Я хочу, чтобы вторая строка выполнялась только после 0,5-секундного интервала анимационного действия Можно ли так сделать?

1 Ответ

2 голосов
/ 26 мая 2010

Вы можете установить делегата для анимации и удалить подпредставление в его методе:

...
[UIView beginAnimations:@"View Flip" context:nil];
[UIView setAnimationDuration:0.5];

[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
[UIView setAnimationDelegate:self];

//First line comes here
[self.view addSubview:subView];
[UIView commitAnimations];
...

Затем в анимации делегата действительно обработчик остановки удалил ваше второе подпредставление:

- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context{
    if ([finished boolValue])
        [subView2 removeFromSuperview];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...