0

我正在使用UIScrollview,並根據用戶是向左還是向右滾動,重新配置UI。問題是我需要驗證用戶確實從一個屏幕跨越到另一個屏幕(沿contentOffset)。確實發生了滾動的UIScrollView事件

我用這個方法嘗試:

-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate; 

但是,如果用戶部分種類的移動滾動視圖在一個方向,但後來沒有完成這個動作會火。

我也試過這個方法:

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

但主要是相同的問題; scrollview左右滾動,但在iPhone上,內容爲640(320 * 2)。我試圖弄清楚這張紙卷是否跨越了或者不在,從一個地方到另一個地方。

有什麼建議嗎?

+0

那麼,你用'-scrollViewDidScroll'丟失了什麼信息/功能?只要用戶拖動滾動視圖,就會調用它,並且可以檢查'scrollView.contentOffset'以獲取內容的當前位置。 –

回答

0

我發現這樣做的方式:

我有一個變量來維持的contentOffset

-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { 
    currX = self.scrollView.contentOffset.x; 
} 

然後在x位置此事件:

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { 
    if(self.scrollView.contentOffset.x == currX) { 
     return;//This is what I needed, If I haven't panned to another view return 
    } 
//Here I do my thing. 
2

我不完全確定你的意思是「從一個屏幕跨越到另一個屏幕」我假設你是指尋呼?如果是這樣,這裏是你可以做什麼:

- (void)scrollViewDidEndDecelerating:(UIScrollView *)sender { 
    int page = sender.contentOffset.x/width; 
    [self.pageControl setCurrentPage:page]; // in case you need it for updating a UIPageControl 
} 
+0

那麼沒有PageControl perse,對於單詞選擇感到抱歉,在我的情況下,scrollview左右滾動,在iPhone上,內容爲640(320 * 2)。我試圖弄清楚滾動是否從一個位置傳遞到另一個位置,因爲你可能會遇到這樣的情況:用戶拖拽滾動視圖的時候有點拖拽,但是然後釋放它並且它不會交叉;使其移動到下一個屏幕。 – funkycoldmedia

+0

你在scrollview上使用分頁嗎?因爲這個功能是免費的。 – runmad