加载屏幕无法正常工作

时间:2012-08-22 09:16:01

标签: iphone uiview

在我的应用程序中,当请求发送到服务器时,我显示加载屏幕,当收到响应时,我正在删除该加载屏幕。

要显示加载屏幕,我使用UIView并将 alpha 缩小为 0.5 ,以便显示背景视图。

我的问题当加载屏幕仍然可见时,用户可以点击背景视图上显示的按钮。

我想要的是:当加载屏幕可见时,用户无法点击屏幕上的任何位置。即使我为userInteractionEnabled提出UIView false ,但仍然可以点击按钮,为什么?

如果有人知道我在哪里做错了以及我如何做到这一点,请告诉我。

提前致谢!

4 个答案:

答案 0 :(得分:1)

UIView可能已禁用交互,但如果视图层次结构上的按钮较高,则视图位于视图的顶部,因此仍可访问。

如果这是在笔尖中创建的视图,那么请确保它位于视图堆栈的顶部

或者如果它以编程方式将其添加为函数末尾的子视图或将其添加到mainWindow(非常小心地将内容添加到主窗口,这是层次结构的顶部)

答案 1 :(得分:0)

与实用的开源库类似。

iOS开源项目是MBProgressHUD,

它指的是Heads Up Display,一个覆盖在另一个视图上的视图,通常用于显示活动指示符和/或提供与UI交互的方式。 HUD的一个很好的例子是使用内置电影播放器​​播放电影。点击屏幕时,电影播放器​​将在显示屏上显示一系列控件。另一个常见示例,以及与MBProgressHUD相关的示例,是在现有视图之上显示进度指示器。例如,当访问远程服务时,为了向用户提供反馈,您可以选择显示“请稍候”消息

您可以下载source code from here

答案 2 :(得分:0)

是的我得到了它,我为UIView执行了userInteractionEnabled false,因此click事件被发送到主视图上的按钮。我删除了userInteractionEnabled false并且它正常工作。

答案 3 :(得分:0)

当您向服务器&发送请求时,可以使用[[UIApplication sharedApplication] beginIgnoringInteractionEvents]。显示加载视图。当您收到响应调用[[UIApplication sharedApplication] endIgnoringInteractionEvents]&删除加载视图。