我在UIScrollView
视图中有UIViewController
水平滚动。如何检测滚动是在左端还是右端还是在中间的某个位置?
答案 0 :(得分:2)
您可能需要查看下面的scrollViewDelegate方法。
<强> ObjC 强>
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
NSLog(@"Point: %@", NSStringFromCGPoint(scrollView.contentOffset));
}
<强>夫特强>
override func scrollViewDidScroll(scrollView: UIScrollView) {
println(scrollView.contentOffset)
}
另外,请务必设置您的scrollview委托your_scroll_view.delegate = self;
,并且您的视图控制器必须符合<UIScrollViewDelegate>
答案 1 :(得分:1)
GameBit在这里是正确的,但要详细说明 -
UIScrollView有一个成员变量contentOffset,它描述了scrollview滚动的原点的像素数。正值是向右滚动,负数是向左滚动。
您的UIScrollView是否处于分页模式?如果是这样,这将有所帮助:
CGFloat pageWidth = scrollView.frame.size.width;
int page = floor((scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
答案 2 :(得分:0)
这适用于横向UIScrollView
UIScrollViewDelegate
在您的ViewController中 - yourScrollView.delegate = self
func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
var currentPage = yourScrollView.contentOffset.x / yourScrollView.bounds.size.width;
}
请勿使用scrollViewDidScroll
,因为您需要等到滚动结束