iOS:我能否以编程方式决定与哪个组件交互(滚动)?



我的情况是我有两个可滚动的视图,一个是垂直的,另一个是垂直的。有没有办法检测用户是做了垂直还是水平手势,并据此选择要与之交互的视图?

谢谢你的帮助。

您可以使用UIScrollViewDelegate中的scrollViewWillBeginDragging来获取滚动的方向。

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
}
}

但是由于此方法不返回滚动视图,因此您只会知道拖动了哪个滚动以及拖动到哪个方向。

请查看isDirectionalLockEnabled是否有帮助。 这有助于锁定滚动方向。

如果此属性为 YES 并且用户开始沿一个常规方向(水平或垂直(拖动,则滚动视图将禁用向另一个方向滚动。如果拖动方向是对角线,则滚动不会被锁定,用户可以向任何方向拖动,直到拖动完成。

最新更新