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

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

Например:-

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

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

[subView2 removeFromSuperView];

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

1
задан wolverine 26 May 2010 в 12:00
поделиться

1 ответ

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

...
[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];
}
2
ответ дан 3 September 2019 в 00:17
поделиться