我发现isAnimating即使在完成最大循环次数并停止动画后也会返回true。但是,一旦移动UIImageView,它将突然更新并更改为false。
以下是我的代码的重要部分: 我以标准方式设置动画:
UIImageView* newImageView = ...
newImageView.animationImages = imageArray;
newImageView.animationDuration = 1.0;
newImageView.animationRepeatCount = 1;
...
[newImagView startAnimating];
在代码的其他地方,我正在检查动画是否已完成:
if (not [newImageView isAnimating])
{
...
}
动画停止后的秒数,isAnimating仍将返回true。
但是如果newImageView已经以某种方式更新(在我的情况下移动它),它将突然返回false。这似乎是无关的,并指出这是一个错误。
有没有人碰到这个或知道解决方法?
答案 0 :(得分:0)
我测试了它使用iphone 4.1 SDK进行编译并在3.1.x设备上运行。
isAnimating on device可以使用但不适用于任何iphone模拟器3.2,4.0,4,1
答案 1 :(得分:0)
我发现isAnimating仅在使用4.x之前的iOS构建时才有效。如果我构建4.3,它不会更改值,除非任何视图被点击或方向更改。与动画结束后,3.x isAnimating可靠地将值更改为NO。
答案 2 :(得分:0)
我遇到了类似的问题。使用像你这样的代码我会在动画持续时间之后继续下面的代码。
[newImageView isAnimating] => true # On the device (iOS5)
[newImageView isAnimating] => false # On the simulator - this was what I expected (iOS5)
以下解决方法似乎有效(尽管这对我来说似乎是一个iOS错误)
UIImageView* newImageView = ...
newImageView.animationImages = imageArray;
newImageView.animationDuration = 1.0;
newImageView.animationRepeatCount = 1;
...
newImageView startAnimating];
// Set a delayed call to stopAnimating
[newImageView performSelector:@selector(stopAnimating) withObject:nil afterDelay:1.01];