Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UIScrollView滚动检测_Iphone_Cocoa Touch_Xcode_Interface Builder_Uiscrollview - Fatal编程技术网

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
,因为您需要等待滚动结束