2011-07-28 42 views
0

我寫過一個UIView的子類,它在drawRect:中繪製自己。它實際上就像是電影的一整天時間線 - 它用時間軸和時間文本標籤繪製時間軸。它可以放大到幾秒鐘,並縮小到全部24小時。當它放大時,它可以用平移手勢滾動。所以這裏是一個問題:我如何實現簡單的動畫,當手指擡起時,時間軸繼續滾動一段時間然後停止(負加速度)?animate pan gesture

兩個想法在我腦海中:

  1. 使用另一個線程
  2. 做出新的類來實現我自己的動畫 - 的CALayer一個子類,然後使用CABasicAnimation。將這個類添加到我的視圖的圖層中。但在這裏我應該完全移動我寫的所有代碼來查看新的子類CALayer,我不想這樣做。它會好嗎?

還有其他想法嗎?

回答

0

將視圖集成到UIScrollView中,讓它能夠處理滾動和縮放並讓您的類只執行繪製,不是更容易嗎?

+0

你的意思是創建'UIScrollView'的子類? – peetonn

+0

不,把你的自定義視圖放在滾動視圖中,只是實現drawRect方法來重畫自己,但通過滾動視圖來完成滾動和縮放。如果你只需要處理繪圖而不是所有其他的東西,那將會是一個很大的麻煩。 –

+0

但我的觀點必須響應縮放和滾動,以便正確重繪本身,因爲它的視覺表現取決於縮放級別。無論如何,我已經解決了我的問題,選擇變體1 - 自己實施。感謝回覆! – peetonn