阻止动画 - 如何循环UIImage数组

时间:2011-08-13 18:34:36

标签: iphone animation uiimageview

我正在尝试阻止动画的方向,尝试使用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。

1 个答案:

答案 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);