iOS:我可以通过编程方式决定与哪个组件互动(滚动)?

问题描述 投票:0回答:2

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

谢谢您的帮助。

ios scroll gesture uitapgesturerecognizer
2个回答
0
投票

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

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


0
投票

您可以使用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
    }
}

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

© www.soinside.com 2019 - 2024. All rights reserved.