我有幾個Core Animation正在同時進行。它們都有一個上下文和一個動畫ID,其中上下文是動畫對象(UIImageView對象)。我想暫停它們,以便動畫暫時停止,然後當有些事情完成時,恢復它以完成它。這些事情只發生在UIScrollView的非常快的滾動移動中。我想通過停止所有正在進行的動畫來提高性能,但不是使滾動視圖滾動的動畫。我已經爲該滾動視圖實現了contentOffset的自定義動畫。有沒有辦法暫停核心動畫並在稍後的某個時間恢復?
8
A
回答
4
我得到解決這個問題的唯一方法如下。
每個視圖要停止動畫:
設置視圖的表現層
幀從該視圖
刪除所有動畫執行您的滾動
重新計算動畫
將新動畫添加到視圖
我知道這不是你想聽到的,但它並沒有聽起來那麼糟糕。跟蹤你想停止的觀點的一個好方法是給他們一個預定的標籤。
要移除的動畫:
[myView.layer removeAllAnimations]
[myView.layer removeAnimationForKey:@ 「theAnimationKey」]
18
可以通過設置的速度暫停層動畫將動畫設置爲零,請參見How to pause the animation of a layer tree。
5
爲了任何人誰自帶搜索,你這是怎麼暫停和恢復動畫:從視圖
https://developer.apple.com/library/ios/#qa/qa2009/qa1673.html
你如何刪除動畫? – Thanks 2009-05-30 19:29:44