我有一个需要滚动的垂直滚动视图,但我想使用左右滑动手势来做其他事情。我有每个滑动方向的行为,但我想限制滚动UIScrollView的滑动的角度,因此它必须是真正的,非常垂直的,并且大多数左或右倾斜滑动激活其他行为而不是改变滚动位置。
我知道我可以通过覆盖scrollViewDidScroll
并比较前一个和当前contentOffset
来获取滑动角度,但我无法阻止滚动视图在那里滚动。
如何限制滚动UIScrollView的滑动角度?
答案 0 :(得分:0)
我认为 scrollViewDidScroll 对于您想要实现的目标来说太迟了。
也许尝试将 UIScrollView 的 directionalLockEnabled 属性设置为 YES 。(不确定这是否有帮助...但是玩用它)
和/或实现 UIScrollViewDelegate 方法- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
并在此方法实现中获取指向 panGestureRecognizer (只读)的指针传入 UIScrollView 的属性。
从那里调用 UIPanGestureRecognizer 上的 translationInView:,在其坐标系中传递应该计算平移手势的平移的视图,并使用 CGPoint 返回使用三角法计算角度,如果不在预定限制范围内,请在 UIPanGestureRecognizer 上调用 setTranslationInView:进行恢复。