我有一個UIView
實例,我正在使用CAKeyframeAnimation
進行動畫處理。這是一個循環動畫,並將不斷運動。但是,我需要允許用戶與物品進行互動(確切地說,響應點擊)。由於CoreAnimation僅移動表示層而不移動模型,因此我無法使用UIButton
實例來獲取touchUpInside
事件。處理動畫UIView/CALayer觸摸的最佳模式?
考慮以下基本示例佈局:
我使用了觸摸事件的藍色框通過重寫touchesEnded:withEvent:
方法上UIView
子類。然後,我通過NSNotification
(我真的不想引入很多耦合來處理此事件)將該事件冒泡給包含的視圖控制器,然後在紅色框中執行hitTest:
動畫。
所有這一切似乎都相當冒險,只能觸摸動畫UIView
。 處理動畫UIView
/CALayer
實例觸摸的最佳模式是什麼?
您是否需要使用CA? CA對於流暢的動畫來說是最好的選擇,因爲它非常輕便,而且輕量級,因爲它沒有全部的事件處理功能(部分屬實)。如果你以某種方式向它添加事件處理,那麼你可能會破壞平滑的GPU能力。我不確定有沒有辦法解決這個問題。它需要多麼流暢?你可能想用其他一些動畫技術來動畫,這些動畫技術實際上是用CPU來移動模型的。只是想和你大聲說話。 – Vinnie 2012-02-16 05:09:54
@Vinnie - 問題是這個例子是一個非常簡單的動畫。真正的問題實際上涉及若干關鍵幀,以便沿着路徑對視圖進行動畫處理,並在沿路徑移動時進行一些旋轉。動畫也需要重複ad-infinitum,所以使用基於UIView塊實際上看起來不太合適。 – 2012-02-16 05:30:58