问题说明了一切。
在从Web服务获取数据或从核心数据获取操作加载数据时,是否有最佳配方可禁用用户交互并显示活动指示器?
我在我的特定应用程序中使用ASIHTTPRequest,JSONKit和Core Data,因此任何使用这些Apis的示例代码都是首选。
谢谢 - wg
答案 0 :(得分:7)
创建一个透明背景的UIView,它占据整个屏幕。
它会拦截互动,不会让用户点击屏幕上的其他项目。
然后你可以添加一个UIActivityIndicator(甚至是UILabel)作为这个透明全屏视图或你需要的任何子视图。
请注意,有许多现有项目,例如SVProgressHUD
,已经这样做,我强烈建议。
答案 1 :(得分:2)
完成这两项任务的一种非常简单易用的方法是使用MBProgressHUD
。
使用示例:
+ (MBProgressHUD *)showHUDAddedTo:(UIView *)view animated:(BOOL)animated;
+ (BOOL)hideHUDForView:(UIView *)view animated:(BOOL)animated;
这两个类方法将显示/隐藏具有透明背景的简单活动指示器。 它还具有显示文本,进度和良好代表的属性。
答案 2 :(得分:1)
在rootViewContoller上使用上面提到的HUD控件。它不会让用户与UI进行交互。