我处于两种滚动视图的情况,一种是水平视图,另一种是垂直视图。有没有一种方法可以检测用户是做垂直手势还是水平手势,并据此选择要与之交互的视图?
谢谢您的帮助。
请查看isDirectionalLockEnabled是否有用。这有助于锁定滚动方向。
如果此属性为YES,并且用户开始在一个通用方向(水平或垂直)上拖动,则滚动视图将禁止在另一个方向上滚动。如果拖动方向是对角线,则滚动不会被锁定,并且用户可以向任意方向拖动,直到拖动完成。
您可以使用scrollViewWillBeginDragging
中的UIScrollViewDelegate
来获取滚动方向。
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
let translation = scrollView.panGestureRecognizer.translation(in: scrollView.superview)
if translation.y > 0 {
// swipes from top to bottom of screen -> down
} else {
// swipes from bottom to top of screen -> up
}
}
但是由于此方法不会返回滚动视图,因此您只会知道向哪个方向拖动了滚动。