用户通过视图问题进行交互

时间:2012-04-05 07:31:52

标签: iphone objective-c

请帮我关闭用户互动。 我有一个自定义视图,在视图层次结构的顶层显示几秒钟。视图下方有几个按钮。问题是当用户点击视图时按钮会捕获触摸事件。我设置了myCustomView.userInteractionEnabled = NO;没有任何反应。按钮通过视图捕获事件都是一样的。如何创建一个不允许通过它拦截触摸的视图?

3 个答案:

答案 0 :(得分:0)

您可以在按钮的公共超级视图上禁用用户交互:

someButton.superview.userInteractionEnabled = NO;

在某些叠加UI位于顶部时禁用用户界面的另一种方法是将叠加层放在自己的窗口中,而不是放在现有视图的顶部。

答案 1 :(得分:0)

如果myCustomView位于视图层次结构的顶层,我想您正在尝试实现类似于覆盖视图的内容,它可以半透明地覆盖其他视图。在这种情况下,在此视图上设置userInteractionEnabled = NO会导致触摸事件转发到以下视图。

正确的方法是在自定义视图上设置userInteractionEnabled = YES,然后创建一个透明按钮以将触摸重新路由到关闭IBAction,或忽略它。

答案 2 :(得分:0)

使用:

[[UIApplication sharedApplication] beginIgnoringInteractionEvents]

忽略用户事件。几秒钟之后,您的视图消失,您可以使用:

[[UIApplication sharedApplication] endIgnoringInteractionEvents]

通过这种方式,您可以解决问题。