如何在代码完成之前停止执行FOR循环

时间:2011-06-05 22:11:28

标签: objective-c ios animation for-loop

我做了这件事。除了向我自己展示之外没有任何其他目的。基本上,我正在移动一个我在循环中围绕屏幕创建的视图。问题是它不会等到一个动画完成后再启动另一个动画,因此视图绕过前两个并在for循环完成后最后一个toastRect结束,并且它没有之后继续前进。在进入下一个动画之前,如何强制代码完成每个动画?

int i;
    for (i=0; i < 100; i++) {

        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:9];
        toast.view.frame = toastRect1;
        [UIView commitAnimations];

        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:9];
        toast.view.frame = toastRect2;
        [UIView commitAnimations];

        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:9];
        toast.view.frame = toastRect;
        [UIView commitAnimations];
        NSLog(@"%d",i);

    }

}

2 个答案:

答案 0 :(得分:3)

我认为您需要使用+ (void)setAnimationDidStopSelector:(SEL)selector。如果需要,请仔细查看http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html

答案 1 :(得分:1)