Iphone UIScrollView滚动检测
我在Iphone UIScrollView滚动检测,iphone,cocoa-touch,xcode,interface-builder,uiscrollview,Iphone,Cocoa Touch,Xcode,Interface Builder,Uiscrollview,我在UIViewController视图中有一个水平滚动的UIScrollView。如何检测卷轴是在左端还是右端或中间的某个地方? GAMBIT在这里是正确的,但要详细说明< /P> UIScrollView有一个成员变量contentOffset,用于描述scrollview从原点滚动了多少像素。正值表示向右滚动,负值表示向左滚动 您的UIScrollView是否处于分页模式?如果是这样,这将有助于: CGFloat pageWidth = scrollView.frame.size.wid
UIViewController
视图中有一个水平滚动的UIScrollView
。如何检测卷轴是在左端还是右端或中间的某个地方?GAMBIT在这里是正确的,但要详细说明< /P> UIScrollView有一个成员变量contentOffset,用于描述scrollview从原点滚动了多少像素。正值表示向右滚动,负值表示向左滚动
您的UIScrollView是否处于分页模式?如果是这样,这将有助于: CGFloat pageWidth = scrollView.frame.size.width;
int page = floor((scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
您可能需要查看下面的scrollViewDelegate方法 ObjC
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
NSLog(@"Point: %@", NSStringFromCGPoint(scrollView.contentOffset));
}
Swift
override func scrollViewDidScroll(scrollView: UIScrollView) {
println(scrollView.contentOffset)
}
看一看这本书
还要确保设置scrollview委托
your\u scroll\u view.delegate=self代码>和视图控制器必须符合
这在水平UIScrollView中适用
- 符合
UIScrollViewDelegate
- 在ViewController中-
yourScrollView.delegate=self
func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
var currentPage = yourScrollView.contentOffset.x / yourScrollView.bounds.size.width;
}
不要使用scrollViewDidScroll
,因为您需要等待滚动结束