Iphone 从web服务或核心数据加载数据时禁用UIViewController交互并显示活动指示器的最佳方法?
问题说明了一切 在从web服务获取数据或从核心数据获取操作加载数据时,是否有禁用用户交互和显示活动指示器的最佳方法 我在我的特定应用程序中使用了ASIHTTPRequest、JSONKit和核心数据,因此任何使用这些API的示例代码都是首选Iphone 从web服务或核心数据加载数据时禁用UIViewController交互并显示活动指示器的最佳方法?,iphone,objective-c,ios4,uiviewcontroller,Iphone,Objective C,Ios4,Uiviewcontroller,问题说明了一切 在从web服务获取数据或从核心数据获取操作加载数据时,是否有禁用用户交互和显示活动指示器的最佳方法 我在我的特定应用程序中使用了ASIHTTPRequest、JSONKit和核心数据,因此任何使用这些API的示例代码都是首选 感谢-wg完成这两项任务的一个非常简单的方法是使用MBProgressHUD 登记入住 用法示例: + (MBProgressHUD *)showHUDAddedTo:(UIView *)view animated:(BOOL)animated; + (B
感谢-wg完成这两项任务的一个非常简单的方法是使用
MBProgressHUD
登记入住
用法示例:
+ (MBProgressHUD *)showHUDAddedTo:(UIView *)view animated:(BOOL)animated;
+ (BOOL)hideHUDForView:(UIView *)view animated:(BOOL)animated;
这两个类方法将显示/隐藏具有半透明背景的简单活动指示器。
它还具有显示文本、进度和优秀代表的属性。完成这两项任务的一种非常简单的方法是使用
MBProgressHUD
登记入住
用法示例:
+ (MBProgressHUD *)showHUDAddedTo:(UIView *)view animated:(BOOL)animated;
+ (BOOL)hideHUDForView:(UIView *)view animated:(BOOL)animated;
这两个类方法将显示/隐藏具有半透明背景的简单活动指示器。
它还具有显示文本、进度和良好委托的属性。创建一个具有透明背景的UIView,它占据整个屏幕 它将拦截交互,不允许用户点击屏幕上的其他项目 然后,您可以添加一个UIActivityIndicator(甚至一个UILabel)作为这个透明全屏视图的子视图或任何您需要的内容
请注意,已有多个类似的项目已经在这样做了,我强烈建议您。创建一个具有透明背景的UIView,它占据整个屏幕 它将拦截交互,不允许用户点击屏幕上的其他项目 然后,您可以添加一个UIActivityIndicator(甚至一个UILabel)作为这个透明全屏视图的子视图或任何您需要的内容
请注意,已有多个类似的项目已经在这样做了,我强烈建议您。在rootViewContoller上使用上面提到的HUD控件。它将不允许用户与UI交互。使用RootViewController上提到的HUD控件。它不允许用户与UI交互。为什么这样做?如果您可以避免阻塞用户(听起来您可以,因为您正在使用的库很乐意进行异步),那么最好不要阻塞通过web服务对用户进行身份验证的示例。我想你会阻止他们与应用程序交互,直到他们通过身份验证。为什么这样做?如果您可以避免阻塞用户(听起来您可以,因为您正在使用的库很乐意进行异步),那么最好不要阻塞通过web服务对用户进行身份验证的示例。我想你会阻止他们与应用程序交互,直到他们通过身份验证。这种方法的问题是,如果用户使用VoiceOver,你仍然可以与屏幕上的其他项目交互。如果仍然可以通过辅助功能通过滑动手势选择覆盖元素,则覆盖元素是不够的;如果你想确保它们不能与之交互,就必须显式禁用它们。很好@cc。但是你有没有一个解决方案来抑制底层组件的画外音?也许可以在透明的UIView上添加一个覆盖所有内容的辅助功能提示,以使其成为“VoiceOver焦点”?这种方法的问题是,如果用户使用VoiceOver,您仍然可以与屏幕上的其他项目进行交互。如果仍然可以通过辅助功能通过滑动手势选择覆盖元素,则覆盖元素是不够的;如果你想确保它们不能与之交互,就必须显式禁用它们。很好@cc。但是你有没有一个解决方案来抑制底层组件的画外音?也许通过在透明的UIView上添加一个可访问性提示来覆盖所有内容,从而获得“画外音焦点”?