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:
。
有没有人对此有任何想法?
现在,我认为这是因为动画的委托是自我,视图控制器。并且动画由线程调用,因此委托不起作用。但我不知道如何改变它。我尝试使用该线程作为替代品,它仍然无法正常工作。
任何人都能帮助我吗?
我的目标是动画调用时,循环应该暂停直到动画结束,然后循环应该继续。直到循环结束。
答案 0 :(得分:0)
您确定要在线程中运行动画吗?因为它已经在自己的线程中运行。正如文档所说,CoreAnimation提供
一个抽象动画界面,允许动画在a上运行 独立的线程,独立于应用程序的运行循环。
也许你只是想链接动画?如果是这样,请查看此主题:chaining animations