2010-12-09 64 views
1

在我看來,iPhone有一個很大的優勢,因爲在它的UIKit直觀,流暢性好感覺滾動元件的其他智能手機。我想用UIKit實現一個使用這種滾動的簡單遊戲,但是我不能使用UIScrollView,因爲它不夠定製。UIScrollView如何像滾動一樣工作?

我試圖實現這種滾動我自己,並試圖兩種不同的方法:

  1. 我用UIPanGestureRecognizer UND根據識別器提供我的翻譯動了我的自定義控件的邊界。爲了在移動過程中擡起我的手指後順利滾動,我開始動畫。我使用識別器給我的速度和一個固定的時間來計算在我舉起手指後它應該滾動多遠。我嘗試了線性運動和緩解運動,但都看起來很奇怪。 (越到後來上)

  2. 我用OnTouchMoved和OnTouchEnded來實現滾動。在OnTouchMove中,我根據手指的移動移動邊界。當手指移動時,我計算當前和最後一次觸摸的位置和時間的差異,以便自己計算速度。當手指擡起時,我在OnTouchEnded中像1中一樣開始動畫,但我使用自己計算的速度。

這兩種方法都沒有給我我想要的結果。擡起手指後,滾動不順暢。 Cellular曲線似乎有一個(急劇的)彎曲。

有沒有人一個想法,蘋果如何做到這一點平滑滾動?我目前的猜測是,我有兩個非常接近的點的插值是不準確的,並且不考慮當前的加速度。

THX對你的思念! 紀伊

回答

3

你爲什麼不添加一個UIScrollView作爲手柄上視圖的頂部,沒有可見的內容。然後,您可以使用UIScrollViewDelegate方法更新您對某些操作的真實看法。例如:如果使用scrollViewDidScroll捕獲UIScrollView的滾動,則可以使用滾動視圖的偏移更新可見視圖。您可以使用scrollViewWillEndDragging:開始將主視圖與scrollview同步,並使用scrollViewDidEndDecelerating來停止同步。

我用同樣的方式來滾動我Animix應用程序的背景。它在底部有一個不可見的滾動視圖,讓用戶感覺他可以拖動草地左右移動背景。