如何检查滑动是不是在堆栈视图的范围内

Posted

技术标签:

【中文标题】如何检查滑动是不是在堆栈视图的范围内【英文标题】:How to check if a swipe is within the bounds of a stack View如何检查滑动是否在堆栈视图的范围内 【发布时间】:2017-06-20 02:19:03 【问题描述】:

堆栈溢出,

我正在尝试检查嵌套堆栈视图中是否发生滑动。在我的特定示例中,我具有以下层次结构:

第一个堆栈视图 第二个堆栈视图 标签 标签

我想获取第二个堆栈视图的坐标并确保用户在该框内滑动。如何做到这一点?

谢谢, 大密码

【问题讨论】:

您是否尝试在第二个滑动视图中添加滑动? 我猜你需要禁用First Stackview的交互 【参考方案1】:

最简单的选择是将UISwipeGestureRecognizer 附加到第二个 Stackview。它只会在用户平移该区域时触发。

另一种选择是将UISwipeGestureRecognizer 附加到堆栈的更上方,并使用提供的方法来测试手势的位置是否在视图内。

下面是UISwipeGestureRecognizer触发的动作的实现:

@IBAction func gestureActivated(_ sender: UISwipeGestureRecognizer) 
    let location = sender.location(in: secondStackView)
    if secondStackView.point(inside: location, with: nil) 
        print("Hit Second Stackview")
     else 
        print("Outside Second Stackview")
    

【讨论】:

以上是关于如何检查滑动是不是在堆栈视图的范围内的主要内容,如果未能解决你的问题,请参考以下文章

如何检查视图控制器是不是添加到堆栈中

iOS 7 在右侧添加了滑动以将视图控制器从堆栈中弹出。是不是可以通过向左滑动将其添加回来?

获取堆栈上控制器的指针

在堆栈视图内具有堆栈视图的水平集合视图在重新加载动画时隐藏内部堆栈视图

嵌入堆栈视图时,滚动视图内容未填充

滑动 ViewController 时出现导航栏错误