2012-01-31 59 views
1

我有一个MBProgressHUD,显示数据在异步背景上拉的时间。有时当网络很慢时,这将会持续下去。所以截至目前,我只是在30秒后隐藏它,如果它没有被解雇。对于缓慢的网络连接,解除HUD的好方法是什么?MBProgressHUD解雇

+0

SuperView把你问如何驳回HUD,或如何在30秒后关闭它,或替代解决方案,以30秒后贬? – UIAdam 2012-01-31 19:18:33

+0

30秒后解除它的替代解决方案。导致发生什么事是我可以在30秒后关闭HUD,但是背景中仍有某些内容正在加载,但尚未完成。 – xonegirlz 2012-01-31 19:30:44

回答

4

我想说,最好的解决方案可能是在数据加载的整个过程中保持HUD,以便用户知道发生了什么事情,并且可能会给他们一个选项以取消它,如果这适合您的应用程序。或者,如果您可以逐段加载和显示数据(即在您拥有整组数据之前),那么您应该只显示HUD,直到您有足够的数据,您可以开始在UI中显示某些内容用户可以与之交互。

基本上,你想避免的是一种情况,用户可能觉得没有什么事情发生,用户界面本质上是空白的,没有任何东西可以做。

+0

我同意,只要您提取数据,您应该坚持展示HUD。在这方面使用-showWhileExecuting对我来说工作得非常好。如果你不再显示它,用户会认为它已经完成并尝试进行交互,如果没有数据,那就不好。 – 2012-01-31 20:18:06

+0

是的,这实际上是问题......但是,如何在HUD旋转时取消选择取消选项?有没有这样的选择? – xonegirlz 2012-02-01 06:08:19

+0

它不像HUD那样依赖于HUD来加载数据。你需要一些方法来取消你的后台数据加载操作。 – UIAdam 2012-02-01 07:35:56

0

实施MBProgressHUD代表

它都会被调用的时间是否如果是快或慢的网络连接,在网络连接速度慢的情况下,会有一个时间出来,这代表将被解雇,从取出HUD在此委托

-(void)hudWasHidden 
{ 
    [HUD removeFromSuperview]; 

}