禁用除一个视图之外的所有视图的用户交互

时间:2011-09-12 12:17:00

标签: iphone ios ipad uialertview

我正在尝试模拟UIAlertView行为。基本上我想呈现一个视图并禁用屏幕上所有其他视图的用户交互(除了呈现的视图)。我该怎么做呢?

3 个答案:

答案 0 :(得分:10)

您的假装警报视图应包含两个视图。第一个是屏幕大小,userInteractionEnabled设置为YES。这可以防止任何触摸进入下面的视图。然后,您可以使用您喜欢的任何按钮等添加作为此视图的子视图的实际警报窗口。

您可以在新UIWindow中包含这两项内容,您可以设置windowLevel以确保它们位于屏幕上的任何其他内容之上。

如果适合您的界面,您还可以在屏幕大小的视图中添加一个非常轻微的backgroundColor,这将使其后面的所有内容变暗。

答案 1 :(得分:1)

每当您显示自定义提醒时,我建议在应用程序的主窗口中添加一个视图(禁用用户交互)和黑色背景,其alpha值为0.3。除了防止用户交互之外,这还会在自定义警报视图后面的UI中添加微妙的变暗效果。

答案 2 :(得分:0)

在您希望禁用用户互动的所有视图上调用[view setUserInteractionEnabled:NO]。在您关闭自定义提醒视图之前,请不要忘记再次致电[view setUserInteractionEnabled:YES];