Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.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
Ios UIScrollView的自定义分页_Ios_Iphone_Swift_Swift3 - Fatal编程技术网

Ios UIScrollView的自定义分页

Ios UIScrollView的自定义分页,ios,iphone,swift,swift3,Ios,Iphone,Swift,Swift3,我有一个UIScrollView,它在启用分页的情况下水平滚动。是否有任何方法可以更改scrollview的分页,使其在整个scroll view长度的一半处捕捉。我已经添加了显示我正在寻找的图片 您可以为scrollView设置委托,并实现UIScrollViewDelegate方法之一: func scrollViewWillEndDragging( _ scrollView: UIScrollView, withVelocity velocity: CGPoint,

我有一个UIScrollView,它在启用分页的情况下水平滚动。是否有任何方法可以更改scrollview的分页,使其在整个scroll view长度的一半处捕捉。我已经添加了显示我正在寻找的图片


您可以为scrollView设置委托,并实现
UIScrollViewDelegate
方法之一:

func scrollViewWillEndDragging(
    _ scrollView: UIScrollView,
    withVelocity velocity: CGPoint,
    targetContentOffset: UnsafeMutablePointer<CGPoint>
)
func ScrollViewWillendDraging(
_scrollView:UIScrollView,
速度:CGPoint,
targetContentOffset:UnsafeMutablePointer
)
当你接到这个电话时,你需要做一些自定义逻辑。具体来说,您将分别检查
targetContentOffset
velocity
,以查看scrollView预期停止的位置和用户拖动的方向。然后将
targetContentOffset
更改为实际停止的新位置

在您的情况下,新的
targetContentOffset
x
-值将是偶数页的倍数。显然,如果你有奇数的页面,你必须考虑最后一页的偏移量,做一些不同的事情


您可能还需要禁用默认的
UIScrollView
分页,并自行处理所有分页,因为您的自定义行为与默认分页行为冲突。

请详细说明并显示您的代码我有一个覆盖整个屏幕的滚动视图和滚动视图内的四个视图。这四个子视图的宽度都是屏幕宽度的一半。我希望此滚动视图捕捉到下一个子视图(屏幕宽度的一半)。我会附上一个视频和我的代码来显示我已经建立了什么。这是视频:谢谢!我试试这个
func scrollViewWillEndDragging(
    _ scrollView: UIScrollView,
    withVelocity velocity: CGPoint,
    targetContentOffset: UnsafeMutablePointer<CGPoint>
)