单向UIScrollView分页

use*_*271 5 uiscrollview ios

可能重复:
如何为UIScrollView启用方向锁?

有没有办法让UIScrollView执行分页,例如只是水平而不是垂直滚动?

换句话说,我希望我的滚动视图在水平滚动时捕捉到页面边界,并在垂直移动时自由滑动.

当然,简单的解决方案是使用两个UIScrollViews,每个方向一个,但在我的情况下这不是一个可行的解决方案.

LK_*_*K__ 6

假设如果水平方向上有任何移动,您总是想要捕捉,只有当水平偏移没有改变时才自由滚动.

  1. 设置directionalLockEnabled = YES
  2. 将UIScrollView包装在转发触摸的另一个视图中(因为我们将修改scrollview的fram`e)
  3. 将UIScrollView的框架高度设置为1(以便在处理水平滚动时最小化垂直对齐)
  4. 检测当前滑动的方向(in scrollViewDidScroll:)
  5. 如果contentOffset的x已更改,则设置pagingEnabled = YES
  6. 如果只有contentOffset中的y已更改,则设置pagingEnabled = NO

这将模拟您想要的场景.如果您水平滑动页面将会捕捉 - 由于名称高度设置为1,垂直捕捉将是最小的.
当仅垂直滑动时,滚动视图将自由滚动.