我正在使用一些非常标准的代码来翻转2个UIImageViews,它们位于一个小视图内。 (我很惊讶它的工作!)在图像1,2,3之间翻转而不是图像1,3(iPhone SDK)
但是,如果我有三 UIImageViews在一个小视图...并想在所有3之间翻转?
我以为我可以剪切/粘贴我的代码的两个副本......但我猜不是。
当我尝试翻转1> 2 ..然后2> 3 ...它只是翻转一次...直接从1> 3。 2发生了什么?
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:myView cache:YES];
[image1 removeFromSuperview];
[myView addSubview:image2];
[UIView commitAnimations];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:myView cache:YES];
[image2 removeFromSuperview];
[myView addSubview:image3];
[UIView commitAnimations];
哇......好的......我会试试看。但我认为“提交动画”是“现在就做”的全部内容......而不是“现在不要这样做......等到我跑另一个翻转......然后取消前一个,完全...”。 。 没有警告”。 – Bonnie
>欲了解更多信息,请检查苹果文档 我已经阅读了尽可能多的iPhone文档页数...我可能会站。而且我仍然错过了关于“提交动画现在并不真正执行动画”的部分。 – Bonnie
@comment 1 - 它不会取消它,它们同时发生。 @comment 2 - iPhone默认为单线程。当你的方法仍在运行时,唯一能让它工作的方法是让这些方法在后台运行并调用performSelectorOnMainThread(因为所有的UI都必须位于主线程中)。但即使如此,动画只会比以前更早开始纳秒。 CommitAnimations不是一个同步调用...意味着你的应用程序不会在这两个动画之间暂停。 – coneybeare