2009-05-30 62 views
8

我有幾個Core Animation正在同時進行。它們都有一個上下文和一個動畫ID,其中上下文是動畫對象(UIImageView對象)。我想暫停它們,以便動畫暫時停止,然後當有些事情完成時,恢復它以完成它。這些事情只發生在UIScrollView的非常快的滾動移動中。我想通過停止所有正在進行的動畫來提高性能,但不是使滾動視圖滾動的動畫。我已經爲該滾動視圖實現了contentOffset的自定義動畫。有沒有辦法暫停核心動畫並在稍後的某個時間恢復?

回答

4

我得到解決這個問題的唯一方法如下。

每個視圖要停止動畫:

設置視圖的表現層

幀從該視圖

刪除所有動畫執行您的滾動

重新計算動畫

將新動畫添加到視圖

我知道這不是你想聽到的,但它並沒有聽起來那麼糟糕。跟蹤你想停止的觀點的一個好方法是給他們一個預定的標籤。


要移除的動畫:

[myView.layer removeAllAnimations]

[myView.layer removeAnimationForKey:@ 「theAnimationKey」]

+0

你如何刪除動畫? – Thanks 2009-05-30 19:29:44