我在iPad上遇到性能問題。我需要用動畫拖動UIView。這就像自制的UIScrollView,但有更大的彈跳效果。iPad自制移動動畫
我使用NSTimer(scheduletTimerWithInterval 0.3秒)自制的動畫循環。在每次迭代中,我將逐步移動視圖。
但問題在於它會一直凍結。沒有太多...但足以感覺..有沒有人知道任何方法來正確地跟蹤事情,所以它會作爲魅力?
在此先感謝!
我在iPad上遇到性能問題。我需要用動畫拖動UIView。這就像自制的UIScrollView,但有更大的彈跳效果。iPad自制移動動畫
我使用NSTimer(scheduletTimerWithInterval 0.3秒)自制的動畫循環。在每次迭代中,我將逐步移動視圖。
但問題在於它會一直凍結。沒有太多...但足以感覺..有沒有人知道任何方法來正確地跟蹤事情,所以它會作爲魅力?
在此先感謝!
您應該使用[UIView beginAnimations]而不是計劃的計時器。例如,移動的東西超過2秒,你可以做這樣的事情:
YourView.center = CGPointMake(0,0);
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:2];
YourView.center = CGPointMake(30, 30);
[UIView commitAnimations];
這會從0,0移動YourView到30,30超過2秒(這是setAnimationDuration是什麼)。所以如果你想做一個反彈效果,你會有一系列的這些。當動畫使用
[UIView setAnimationDidStopSelector:@selector(somefunction)]
此時,你可以在你的函數「somefunction」揭開序幕另一個動畫完成,您也可以收到通知。
我相信這不是因爲每次迭代計算的算法。因爲如果我將主視圖移動到屏幕大小的一半左右(因此只能看到滑動視圖的一半部分),它可以順利運行。有誰知道標準核心動畫是如何工作的?它內部是否有類似的東西(NSTimer)? – Dmitry 2011-02-25 13:18:27
我發現了一件事 - 如果您將攔截事件touchesMoved並將移動某個視圖,您會看到它的性能不佳(視圖在移動時呈現抽動)。但是當你在UIScrollView中做同樣的事情時,視圖平穩地移動。那麼,它的UIScrollView如何工作? – Dmitry 2011-02-25 18:06:16