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