仅在滚动内容到达边缘时识别 UIScrollView 中的滑动手势

Posted

技术标签:

【中文标题】仅在滚动内容到达边缘时识别 UIScrollView 中的滑动手势【英文标题】:Recognize swipe gesture in UIScrollView only when scrolling content reach the edge 【发布时间】:2016-12-01 11:54:10 【问题描述】:

我有UIScrollView,垂直滚动处于活动状态。我想要做的是添加带有方向.down 的滑动手势,当用户因为到达边缘而无法再滚动内容时,该手势将被识别。

我正在尝试使用 require(toFail:) 但它无法正常工作。

let swipeDown = UISwipeGestureRecognizer(target: self, action: #selector(self.respondToSwipeGesture))
swipeDown.direction = UISwipeGestureRecognizerDirection.down
swipeDown.require(toFail: self.scrollView.panGestureRecognizer)
self.scrollView.addGestureRecognizer(swipeDown)

我还添加了UIGestureRecognizerDelegate方法同时识别:

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool 
        return true

如何在 scrollView 中始终优先考虑滚动内容以及何时无法检测到滑动?

【问题讨论】:

【参考方案1】:

好的,我处理该问题的方法是简单地检查 contentOffset 是否达到点 0.0,如果是,则禁用滚动并激活其他手势。就我而言,这就足够了。

if scrollView.contentOffset.y == 0.0 
    print("content on top")

    // use delegate method here to manage the gestures


【讨论】:

我也面临同样的问题,我想从你的帖子中学习。由于我是 ios 开发的初学者,您是否可以发布更大版本的代码,包括 if scrollView.content... 看起来像?我想知道您将零件放在更大的图片中的位置以及委托方法的外观。请,谢谢!

以上是关于仅在滚动内容到达边缘时识别 UIScrollView 中的滑动手势的主要内容,如果未能解决你的问题,请参考以下文章

仅当父滚动视图到达结束时滚动子滚动视图

仅在 FlatList 顶部时向下滑动模态

到达顶部时CSS滚动捕捉溢出身体

Flex React Native - 当内容到达边缘时如何让内容中断到下一行

开始滚动动画,它到达该部分

当光标位于屏幕的顶部或底部边缘时,如何使用 JQuery/Javascript 向下滚动页面?