2010-10-22 77 views
1

我目前正在研究iOS的一些核心動畫內容,並且非常享受我自己。這個問題關於可以實現動畫的許多不同方式。假設你想爲每個動畫循環旋轉一次UIView幾次,但是使用不同的定時函數。據我所知,存在實現這個至少兩種不同的方式:CAAnimationGroup與CAKeyframeAnimation的優點和缺點

  1. 我可以創建一個CAAnimationGroup和不同CABasicAnimation對象添加到它。通過控制他們的beginTime屬性並設置不同的CAMediaTimingFunction他們我得到我想要的個人行爲。
  2. 另一種選擇是創建一個CAKeyframeAnimation並通過添加不同的鍵值我可以單獨定製不同的「幀」。

所以我的問題是這樣的:是否有使用這些實現中的任何一個的優勢?

我的後續問題:如果是這樣,你用什麼方法找出這個問題?換句話說,我將如何去測量動畫的表現?

謝謝你提前和最好的問候。

// Abeansits

回答

2

對我來說,這兩者之間的選擇是一個語義之一:

  • 如果我想動畫一個對象超過幾個階段,我使用關鍵幀動畫。
  • 如果我想同時動畫幾個對象,我使用動畫組(如果單個對象的動畫包含多個階段,則可以選擇包含多個關鍵幀動畫)。
+0

好的,似乎有道理。但是你有沒有什麼辦法可以確保一種方法比另一種方法更有效率?由於您實際上是在使用不同的類和接口實現動畫,因此它們的性能至少應該有一點點不同。或者我看到這個錯誤? – ABeanSits 2010-10-22 11:53:04

+0

我不知道。但是如果差異有任何意義,我會感到驚訝。在低級別的實現中,兩者應該歸結爲非常類似的代碼。 – 2010-10-22 13:32:13