for(NSInteger i = 0; i < 10; i++)
{
....
singleThread = [[NSThread alloc] initWithTarget:self selector:@selector(changeLayerBackground) object:nil];
[singleThread start];
}
функцию changeLayerBackground вот так:
- (void) changeLayerBackground
{
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"backgroundColor"];
animation.delegate = self;
......
[layer addAnimation:selectionAnimation forKey:@"animation"];
}
Я обнаружил, что функция animationDidStop:finished:
вызывается только после завершения всего цикла.
Кто-нибудь знает об этом?
Я подумал об этом, потому что делегатом анимации является self, контроллер представления. И анимация вызывается потоком, поэтому делегат не работает. Но я не знаю, как это изменить. Я пробовал использовать поток как замену, все равно не работает.
Кто-нибудь может мне с этим помочь?
Моя цель - при вызове анимации цикл должен приостанавливаться, пока анимация не будет завершена, а затем цикл должен быть продолжен. пока петля не закончится.