【问题标题】:iPhone, Capture all touch events in a dimming viewiPhone,在调光视图中捕获所有触摸事件
【发布时间】:2012-01-22 12:20:04
【问题描述】:

我正在尝试制作一个类似于 UISearchDisplayController 中的调光视图,它捕获点击手势以取消搜索。

我在调试器中发现 UISearchDisplayController 只是添加了一个私有 dimmingView,它是 UIControl 的一个实例作为 searchContentsViewController,并且调光捕获所有触摸事件,即使 UIButton 位于 searchContentsViewController 实际上在 dimmingView 下。

在我的演示代码(iOS SDK 5.0 中的测试)中,我将@interface DimmingView:UIControl 子类化。 如果我只是在调光视图下单击按钮的边界,按钮捕获事件和调光视图什么都不会捕获,即使我已经覆盖了 touchesBegan、sendAction。 .. 方法。如果点击点超出按钮边界,我的调光视图会捕获事件,而按钮和调光视图的超级视图什么也不会捕获。

那么 UISearchDisplayController 的调光视图是如何实现防止underviews, event button, get touch event的呢?

【问题讨论】:

  • 您无需将标题更新为“已修复”,接受的答案就是这样做的。更改标题只会使问题列表变得混乱,并无缘无故地将问题推到首页。

标签: iphone ios


【解决方案1】:

您的调光视图需要启用用户交互 -

dimmingView.userInteractionEnabled = YES;

通常是一个点击手势识别器,当它被点击时会被识别。

这将捕获其下方任何物体的触摸。如果您在调光视图之上添加更多子视图,那么它们将是可触摸的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 2014-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多