Я запускаю анимированное расширение, когда изображение затронуто, и затем сокращение его вниз к нормальному размеру, когда оно выпущено. При помощи setAnimationBeginsFromCurrentState:YES эффект изменения масштаба является хорошим и гладким при подъеме части пальца путь посредством анимации.
Однако то, что я хочу сделать, "закрепляют" больший размер, если Вы коснулись изображения довольно долго, чтобы анимация завершилась, но позвольте, это уменьшиться отступает как нормальное, если Вы выпускаете преждевременно.
Существует ли способ сказать, существует ли в настоящее время выполнение анимации, или завершилась ли конкретная анимация?
Я полагаю, что могу, вероятно, сделать это с performSelector:afterDelay: звоните в touchesStarted с задержкой равный продолжительности анимации и отмены его, если touchesEnded прибывает слишком скоро, но я не могу предположить, что это - лучший способ...?
- (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!");
}
}
Я думаю, что «+ (void) setanimationdidstopselector: (SEL) SELECTOR" должен делать то, что вы хотите. Это позвонит данному селектору на вашем делегате после завершения анимации.