iPhone SDK - как я могу сказать, когда анимация закончилась?

Я запускаю анимированное расширение, когда изображение затронуто, и затем сокращение его вниз к нормальному размеру, когда оно выпущено. При помощи setAnimationBeginsFromCurrentState:YES эффект изменения масштаба является хорошим и гладким при подъеме части пальца путь посредством анимации.

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

Существует ли способ сказать, существует ли в настоящее время выполнение анимации, или завершилась ли конкретная анимация?

Я полагаю, что могу, вероятно, сделать это с performSelector:afterDelay: звоните в touchesStarted с задержкой равный продолжительности анимации и отмены его, если touchesEnded прибывает слишком скоро, но я не могу предположить, что это - лучший способ...?

5
задан Chris Newman 22 January 2010 в 01:05
поделиться

2 ответа

- (void)animateStuff {
    [UIView beginAnimations:@"animationName" context:nil];
    [UIView setAnimationDelegate:self];
    [self.view doWhatever];
    [UIView commitAnimations];
}

- (void)animationDidStop:(NSString *)animationID
                finished:(NSNumber *)finished
                 context:(void *)context
{
    if ([finished boolValue]) {
        NSLog(@"Animation Done!");
    }
}
13
ответ дан 18 December 2019 в 13:14
поделиться

Я думаю, что «+ (void) setanimationdidstopselector: (SEL) SELECTOR" должен делать то, что вы хотите. Это позвонит данному селектору на вашем делегате после завершения анимации.

0
ответ дан 18 December 2019 в 13:14
поделиться
Другие вопросы по тегам:

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