在从Web服务或核心数据加载数据时禁用UIViewController交互并显示活动指示的最佳方法?

时间:2011-09-21 19:43:11

标签: iphone objective-c ios4 uiviewcontroller

问题说明了一切。

在从Web服务获取数据或从核心数据获取操作加载数据时,是否有最佳配方可禁用用户交互并显示活动指示器?

我在我的特定应用程序中使用ASIHTTPRequest,JSONKit和Core Data,因此任何使用这些Apis的示例代码都是首选。

谢谢 - wg

3 个答案:

答案 0 :(得分:7)

创建一个透明背景的UIView,它占据整个屏幕。

它会拦截互动,不会让用户点击屏幕上的其他项目。

然后你可以添加一个UIActivityIndi​​cator(甚至是UILabel)作为这个透明全屏视图或你需要的任何子视图。

请注意,有许多现有项目,例如SVProgressHUD,已经这样做,我强烈建议。

答案 1 :(得分:2)

完成这两项任务的一种非常简单易用的方法是使用MBProgressHUD

检查it's repository

中的Github

使用示例:

+ (MBProgressHUD *)showHUDAddedTo:(UIView *)view animated:(BOOL)animated;

+ (BOOL)hideHUDForView:(UIView *)view animated:(BOOL)animated;

这两个类方法将显示/隐藏具有透明背景的简单活动指示器。 它还具有显示文本,进度和良好代表的属性。

答案 2 :(得分:1)

在rootViewContoller上使用上面提到的HUD控件。它不会让用户与UI进行交互。