所以我有一些動畫塊可以在我的應用上創建一些非常簡單的動畫(例如連續旋轉的輪子)。這是動畫的代碼(如果來自舊的commanimations樣式塊,我已經改變了,但得到同樣的問題)。爲什麼我需要這樣做,還有更好的方法嗎? iPhone應用上的動畫塊OS4
[UIView animateWithDuration:30 delay:0.0
options:(UIViewAnimationOptionAllowUserInteraction |
UIViewAnimationOptionCurveLinear
| UIViewAnimationOptionRepeat)
animations:^(void){
wheel.transform = CGAffineTransformMakeRotation(M_PI*-0.5);
}
completion:^(BOOL finished){
if(finished){NSLog(@"^^^^^^^^wheel^^^^FINSIHED");
]}
}];
我遇到的問題是,在OS4上,當應用程序被解散到多任務欄並恢復動畫停止。如果在恢復時重置位置,當應用程序再次變得活躍,像這樣......
wheel.transform = CGAffineTransformMakeRotation(0);
然後它繼續。
這並不理想,因爲我的動畫在重新啓動時跳過。我不明白爲什麼會發生這種情況,或者爲什麼我需要這樣做。
隨着動畫的開始,「完成」方法幾乎立即被調用,這很奇怪,因爲此動畫永遠不會完成。當應用程序變爲活動狀態並且動畫實際停止時,它也不會被調用。
任何任何想法或建議?我一直在爲此奮鬥一段時間...
謝謝,我可以使用計時器爲零件製作動畫,但我並沒有真正考慮過這個問題。這似乎更復雜,但你知道爲什麼我的方法不工作? – user157733 2010-07-22 11:34:07
對於像這樣的長時間運行的動畫,'NSTimer'或'CADisplayLink'是更好的選擇。「UIView」動畫的意圖是短暫的,通常是由於用戶交互。 – 2010-09-27 19:15:14