2010-06-29 53 views
1

我發現動畫即使在完成最大循環數並停止動畫後仍然返回true。但是,一旦你移動UIImageView,它會突然更新並更改爲false。is針對iPhone的UIImageView的動畫返回有缺陷

這裏是我的代碼的重要位: 我成立了以標準方式動畫:

UIImageView* newImageView = ... 
newImageView.animationImages = imageArray; 
newImageView.animationDuration = 1.0; 
newImageView.animationRepeatCount = 1; 
... 
[newImagView startAnimating]; 

其他地方我檢查動畫是否已經完成的代碼:

if (not [newImageView isAnimating]) 
{ 
... 
} 

動畫停止後的秒數isAnimating仍然會返回true。

但是,如果newImageView已經以某種方式更新(在我的例子中移動它),它會突然返回false。這似乎不相關,並指出這是一個錯誤。

有沒有人遇到過這個問題或知道解決辦法?

回答

0

我測試了它使用iphone 4.1 SDK和runngin編譯3.1.x設備。

isAnimating設備上工作,但不與任何iphone simualtor 3.2,4.0,4,1

+0

5.0構建的設備 - 具有永不落幕的行爲 – bshirley 2011-10-31 22:18:26

0

我發現,當與4.x的預建的iOS工作isAnimating只。如果我針對4.3構建,它不會更改值,除非任何視圖被挖掘或方向改變。 3.x的動畫結束後,動畫可靠地將值更改爲NO。

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]; 
+0

的這種方法的問題是,你有可能會阻止錯誤的動畫。圖像,你有相同的imageView不止一組animationImages。如果快速點擊並開始第二組動畫,那麼您將安排兩次stopAnimating。你必須建立國家管理... Yu ... – nicktmro 2012-02-08 13:26:32