2010-02-07 57 views
3

我想弄清楚如何計算滾動視圖停止時,用戶做一個滑動手勢和滾動視圖進入減速。我正在嘗試使用委託功能,但我無法準確理解它。請幫忙!UIScrollView - 找出哪裏滾動將停止

- (void) scrollViewDidScroll:(UIScrollView *)scrollView; 
- (void) scrollViewWillBeginDecelerating:(UIScrollView *)scrollView; 
- (void) scrollViewDidEndDecelerating:(UIScrollView *)scrollView; 

回答

0

在UIScrollView實現中保存的當前加速度存在一個變量,但使用該變量作爲解決方案是不可能的,因爲您無法編譯設備的代碼。

0

聽起來很複雜。用戶可能在減速時再次開始滾動,突然停止或不停止。也許你可以通過僅僅做DidEndDecelerating來實現,也就是隻在滾動結束時檢測位置?

+1

我不行。當「scrollViewWillBeginDecelerating」被調用時,我必須弄清楚它。 – devinross 2010-02-07 17:44:01

0

它應該是簡單的數學。每次調用scrollViewDidScroll時,scrollview的contentOffset屬性都會更新。您只需要將矢量保存在兩個位置之間以及時間至少達到減速的下降結束位置。

請注意,用戶可以隨時按Jaanus指出的滾動視圖來停止減速。

+2

容易說,然後完成。 – devinross 2010-02-08 19:20:59

2

不幸的是UIScrollView不能這樣工作 - 在減速結束的地方沒有辦法問它。

3

此線程有點舊,但仍然出現在搜索這個問題的頂部。

的UIScrollViewDelegate協議包含告訴你的代碼中滾動視圖有望停止以下方法...

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset 

的targetContentOffset參數是一個INOUT所以如果你把它設置爲不同的值時, scrollview實際上會停在你指定的偏移量處。

+0

這實際上是正確的答案 – Toad 2015-12-21 10:28:23

相關問題