2

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

4

3 回答 3

0

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

someButton.superview.userInteractionEnabled = NO;

在某些覆盖 UI 位于顶部时禁用 UI 的另一种方法是将覆盖放在其自己的窗口中,而不是在现有视图的顶部。

于 2012-04-05T07:38:45.900 回答
0

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

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

于 2012-04-05T07:42:55.910 回答
0

采用:

[[UIApplication sharedApplication] beginIgnoringInteractionEvents]

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

[[UIApplication sharedApplication] endIgnoringInteractionEvents]

这样你就可以解决你的问题。

于 2012-04-05T07:45:21.123 回答