我想根据传入的数据用动画动态插入 UIViews
。
我发送两个异步 URLRequest 并从另一个线程取回接收到的数据。
我正在观察一个属性,该属性会动态填充来自不同请求的数据。所以 KVO 向我发送消息,可能是一个接一个地发送给我。
对于第一条传入消息,我启动了一些相关动画。在动画期间,它经常发生,新数据到达并向我的观察者发送消息。然后我想等到动画结束并开始新数据的动画。
我正在寻找一个很好的实现,而不是带有 while 循环的东西,等待 bool 发生变化。
编辑: 考虑一下,我不能说哪个数据先出现。所以我不能将动画方法定义为第一个。
最佳答案
如何将传入的 View 添加到 mutableArray 中,然后使用类似这样的东西:
-(void) animateView:(UIView *)viewToAnimate{
[UIView animateWithDuration:0.5 animations:^{
viewToAnimate.alpha = 0;
}
completion:^(BOOL finished){
[_mutableArrayOfAnimationViews removeObject: viewToAnimate];
if ([_mutableArrayOfAnimationViews count] > 0) {
UIView *newAnimationView = [_mutableArrayOfAnimationViews objectAtIndex:0];
[self animateView: newAnimationView];
}
}];
}
然后你还可以检查当 View 进来时数组是否已经为空,如果是就调用上面的方法...
关于ios - 一个接一个地执行动画,由 KVO 命中(在异步 URLRequest 之后),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14631949/