Хорошо, вам нужно установить массив точек как свойство класса, что-то вроде animationPath
.Итак, теперь вам нужно обратить внимание на методы делегата методов делегата анимации UIView (на самом деле это не другой класс, это просто делегат методов класса).
Установить метод для вызована setAnimationDidStopSelector:selector
каждый раз, когда анимация останавливается, поэтому здесь у вас будет что-то вроде этого:
//Inside the callback for setAnimationDidStopSelector
if ([animationPath count] != 0){
//Go to next point
CGPoint location = [[self.array objectAtIndex:0] CGPointValue];
[UIView animateWithDuration:0.1 animations:^{
self.imageView.center = location;
} completion:^(BOOL finished){
}];
}
else{
NSLog(@"Nowhere else to go, animation finished :D");
}
Так что просто запустите анимацию с первой точкой.
Я помню, что UIView
s анимации управляют вещами в других потоках, поэтому, вероятно, поэтому оператор for не работает.