1

我觉得这对我来说应该很明显,但由于某种原因我无法弄清楚。我有一个带有导航栏、工具栏和主视图的导航界面。有时,用户采取的操作会导致进度指示器出现在视图中间。

虽然进度指示器(这是一个自定义 UIView)在中间旋转,但我希望不允许触摸输入进入任何底层界面(主视图、导航栏、工具栏等)。但这似乎并不简单。

我已经尝试(但失败了)创建一个简单的视图,其唯一的工作就是吞下触摸输入并将其用作窗口子视图——没有骰子,它永远不会获得触摸事件(是的,它确实具有 userInteractionEnabled)。我试图将它作为一个透明的模态视图控制器,但那些似乎从来都不是透明的。

想法?我错过了什么?

谢谢!

4

2 回答 2

3

您可以阻止应用程序接受交互事件

[[UIApplication sharedApplication] beginIgnoringInteractionEvents];

然后再次开始参加活动

[[UIApplication sharedApplication] endIgnoringInteractionEvents];

但我会非常小心,因为它会阻止用户与您的应用程序进行交互。

建议另一条路线。您可以显示仅使用 init 方法创建的 UIAlertView,以将进度指示器放置在其中。如果您使用 init 方法,那么用户将没有与之交互的按钮。然后,当您完成后,您可以关闭警报视图。如果您想为用户提供一种取消操作的方法,您甚至可以使用警报视图上的按钮来取消它。

于 2010-03-22T07:56:07.613 回答
1

您可以创建一个windowLevel> 1 的透明 UIWindow。

于 2010-03-22T07:44:13.730 回答