UIImageView for iPhone的isAnimating返回有问题

时间:2010-06-29 20:04:58

标签: iphone animation uiimageview

我发现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。这似乎是无关的,并指出这是一个错误。

有没有人碰到这个或知道解决方法?

3 个答案:

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