Вы должны использовать [UIView beginAnimations] вместо запланированного таймера.Например, чтобы переместить что-то на 2 секунды, вы можете сделать что-то вроде этого:
YourView.center = CGPointMake(0,0);
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:2];
YourView.center = CGPointMake(30, 30);
[UIView commitAnimations];
Это переместит YourView с 0,0 до 30,30 в течение 2 секунд (для этого используется setAnimationDuration).Таким образом, вы бы имели последовательность из них, если вы хотите сделать эффект отказов.Вы также можете получить уведомление о завершении анимации с помощью
[UIView setAnimationDidStopSelector:@selector(somefunction)]
, после чего вы можете запустить другую анимацию в функции «somefunction».