好的。我看到很多主題都與我在這裏要做的相似,但沒有什麼比較匹配的。也許我的方法離基地很遠。這筆交易。使用drawRect的平滑動畫:和UIPanGestureRecognizer
我在drawRect中爲我的UIView子類繪製圖表。然後,我使用UIPanGestureRecognizer將圖表的偏移量(內部,不在視圖層次結構中)轉換爲右側/左側。這很好,但我的問題是識別器的動作被頻率相對較低。具體來說,所產生的平移比在滾動視圖或表格視圖中要遜色得多。特別是當我的圖表中的點數增加時。現在,我想要做的事情並不是實際觸發平移手勢的動作,而是讓一個計時器以每秒30次的速度觸發,插入從平移開始到當前時刻的偏移量。但是,這變得越來越複雜。
有人有什麼建議嗎?我真的應該用UIScrollView來做這個嗎?我不想這樣做的原因是數據可能在任何一個方向上延伸很遠,我不想一次繪製(或至少存儲)整個路徑,而只是執行當前的部分顯示。我應該使用CAShapeLayer嗎?在我花了一天的時間來玩這些可能性之前,我想要一些輸入...
任何輸入/經驗都是最受歡迎的。
爲什麼在您平移時調用drawRect?你不是在移動視圖嗎? – 2012-03-28 18:12:23
不,pan修改我的「dataWindow」,它反映在drawRect中。視圖本身不會移動或縮放。 – samson 2012-03-28 20:17:34
嗯,所以它是爲每個滾動增量重繪?這會減慢速度。我所看到的一個技巧是將數據渲染成圖像,並且只有在新數據到達時才從數據重繪,否則就是複合圖像。或者將你的數據視圖放到滾動視圖中,並且根本不重繪。當你到達它時發佈你的解決方案。 – 2012-03-28 21:04:23