【问题标题】:UIView handle only double tapUIView 句柄只有双击
【发布时间】:2016-06-15 18:29:55
【问题描述】:

我希望我的视图只处理双击手势。其余的手势应该转发到它的superview。这怎么可能实现? 我尝试了pointsInside 覆盖技巧,但它转发了所有的触摸。

编辑:

超级视图也可能决定或不决定处理触摸(它可能决定将它们转发给其他视图)。 实际上,我想要实现的是在最初只对双击做出反应的UIWindow 之上,其余的触摸应该通过。

【问题讨论】:

    标签: ios swift uigesturerecognizer uitouch


    【解决方案1】:

    将您的双击手势识别器添加到超级视图,然后在手势识别器的委托中实现gestureRecognizerShouldBegin,并且仅当它在您的视图框架内时才返回true。这样,您可以在您的视图中将 userInteractionEnabled 设置为 false,一切都会正常工作。除了双击之外,该视图对触摸是透明的。不需要任何 hitTest 或 pointInside 覆盖。

    【讨论】:

    • 您的回答确实回答了我的问题。但是,一开始我把它简化了一点。现在我添加了更多上下文。
    • 同样的想法也可以。在UIWindow 上将userInteractionEnabled 设置为false,并将手势识别器添加到其下方的窗口中。
    • 我会尝试,如果它有效,我会接受你的回答。不确定它是否会起作用,因为下面的窗口中有许多子视图可能会触动。
    猜你喜欢
    • 1970-01-01
    • 2018-07-15
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-10
    相关资源
    最近更新 更多