限制滑动的角度以滚动UIScrollView

时间:2016-01-06 06:43:54

标签: ios objective-c uiscrollview

我有一个需要滚动的垂直滚动视图,但我想使用左右滑动手势来做其他事情。我有每个滑动方向的行为,但我想限制滚动UIScrollView的滑动的角度,因此它必须是真正的,非常垂直的,并且大多数左或右倾斜滑动激活其他行为而不是改变滚动位置。

我知道我可以通过覆盖scrollViewDidScroll并比较前一个和当前contentOffset来获取滑动角度,但我无法阻止滚动视图在那里滚动。

如何限制滚动UIScrollView的滑动角度?

1 个答案:

答案 0 :(得分:0)

我认为 scrollViewDidScroll 对于您想要实现的目标来说太迟了。

也许尝试将 UIScrollView directionalLockEnabled 属性设置为 YES (不确定这是否有帮助...但是玩用它)

和/或实现 UIScrollViewDelegate 方法- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView并在此方法实现中获取指向 panGestureRecognizer (只读)的指针传入 UIScrollView 的属性。

从那里调用 UIPanGestureRecognizer 上的 translationInView:,在其坐标系中传递应该计算平移手势的平移的视图,并使用 CGPoint 返回使用三角法计算角度,如果不在预定限制范围内,请在 UIPanGestureRecognizer 上调用 setTranslationInView:进行恢复。