2010-09-26 76 views
1

我有一個UIScrollView在水平滾動的UIViewController視圖。我如何檢測滾動是在左端還是右端還是中間的某個位置?UIScrollView滾動檢測

回答

1

GameBit是正確的在這裏,但闡述 -

的UIScrollView中有一個成員變量contentOffset,描述從原點滾動視圖滾動了多少像素。正值是向右滾動,負值是向左滾動。

你的UIScrollView在分頁模式?如果是這樣,這將有所幫助:

CGFloat pageWidth = scrollView.frame.size.width; 
    int page = floor((scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1; 
2

您可能需要尋找一個scrollViewDelegate方法,如下所示。

ObjC

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{ 
    NSLog(@"Point: %@", NSStringFromCGPoint(scrollView.contentOffset)); 
} 

斯威夫特

override func scrollViewDidScroll(scrollView: UIScrollView) { 
    println(scrollView.contentOffset) 
} 

看一看在apple docs.

同時一定要設置您的滾動型委託your_scroll_view.delegate = self;和您的視圖控制器必須符合<UIScrollViewDelegate>

0

這對我的作品水平的UIScrollView

  • 順應UIScrollViewDelegate
  • 在你的ViewController - yourScrollView.delegate = self

    func scrollViewDidEndDecelerating(scrollView: UIScrollView) { 
    var currentPage = yourScrollView.contentOffset.x/yourScrollView.bounds.size.width; 
    } 
    

,因爲你需要等到不要使用scrollViewDidScroll滾動結束