我正在尝试阻止动画的方向,尝试使用UIImageView动画实现多个动画和“on finish”事件但是失败了。
我有一个UIImage数组,我需要向后循环,然后显示。以下是我到目前为止的情况:
__block int i = 9;
[UIView animateWithDuration:4.0
animations:^{
self.fooView.image = fooImage[i];
[self.view addSubview:self.fooView];
i--;
}
completion:NULL];
这确实很好地显示了fooImage []的第9个元素,但它没有遍历其余部分。
这是一个误解,在这种情况下哪些块实际上可以做什么?我试图也包装一个while循环,递减“我”,但我最终只得到了第一个元素(我有点期待)。在这个实例中如何迭代一个数组 - 可能有9个不同的动画块?
感谢您的任何提示,感谢您的时间
SC。
答案 0 :(得分:1)
您的动画完成处理程序为NULL,这意味着动画完成后不会发生任何事情。 如果你实际上没有动画,那么使用动画块很奇怪。如果没有任何动画效果,动画将不会在调用竞争处理程序之前等待4秒。
__block int i = 9;
void(^process)(void(^recursive)());
process = ^(void(^recursive)()) {
--i;
[UIView animateWithDuration:4.0
animations:^{
NSLog(@"%d", i);
}
completion:^(BOOL finished) {
recursive(recursive);
}];
};
process(process);