【问题标题】:Simultaneous gestures across overlapping sibling views跨重叠兄弟视图的同时手势
【发布时间】:2018-07-24 17:46:07
【问题描述】:

我在同级视图中同时接受两个手势时遇到问题。视图结构如下。

Superview
 |
 |--> ChildView1 (UITableView)
 |
 |--> ChildView2 (UIView).. Partially overlaps ChildView1

当我在ChildView2 上做平移手势时,我希望它传递到ChildView1,以便UITableView 正确滚动。 但是,当我在 ChildView2 上执行 LongPress 手势时,我希望它能够在 ChildView2 中被正确识别。

我见过的最接近的问题(和答案)是this。但是,与ChildView1 必须处理传递的手势的问题不同,我希望UITableView 处理手势并滚动,就好像它直接在视图上滚动一样。这可能吗?

感谢您提供任何见解。

【问题讨论】:

    标签: ios iphone swift uitableview uikit


    【解决方案1】:

    创建UIView 的子类并将其添加为childView2 的类

    class customView:UIView
    {
       override func point(inside point: CGPoint,with event: UIEvent?) -> Bool
       {
         return false
       }
    }
    

    【讨论】:

    • 这有助于滚动 ChildView1,但 ChildView2 上的手势(长按)将不再被识别。
    • 通过在该自定义类中声明一个 var 来管理它的打开/关闭
    • 默认情况下我需要将其关闭(将点传递给 ChildView1),并且仅在可能是长按手势时才打开它。但是,如果它默认关闭,长按手势状态将永远不会改变状态,因为所有的触摸都传递给 ChildView1。因此,我将没有机会打开 var。再次澄清一下,我想同时识别这两种手势(长按 ChildView2,滚动 ChildView1)。
    猜你喜欢
    • 2014-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-13
    • 1970-01-01
    相关资源
    最近更新 更多