Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 从web服务或核心数据加载数据时禁用UIViewController交互并显示活动指示器的最佳方法?_Iphone_Objective C_Ios4_Uiviewcontroller - Fatal编程技术网

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

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

问题说明了一切

在从web服务获取数据或从核心数据获取操作加载数据时,是否有禁用用户交互和显示活动指示器的最佳方法

我在我的特定应用程序中使用了ASIHTTPRequest、JSONKit和核心数据,因此任何使用这些API的示例代码都是首选


感谢-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上添加一个可访问性提示来覆盖所有内容,从而获得“画外音焦点”?