iOS:ProgressHUD无效不显示的现象

来源:互联网 发布:php用ajaxs上传图片 编辑:程序博客网 时间:2024/06/15 15:37

一、现象描述

在一个viewController中使用了[ProgressHUD show**],首次打开app使用一切正常,但是我退出app之后重新打开,然后到了那个页面,它就不显示了,功能一切正常,也显示经过了这行代码。

原因是因为我在applicationWillEnterForeground中调用了didFinishLaunchingWithOptions,意味着每次退出app再重新打开的时候,相当于执行了didFinishLaunchingWithOptions里面的初始化的代码。我觉得应该是就是这里出了问题,我去掉了在applicationWillEnterForeground中对didFinishLaunchingWithOptions的调用,果然一切都好了。

二、解决方案

但是我没有像上面那样解决,因为像上面那样的话,我还要去修改其他部分的逻辑方面的代码,改动有点大,然后我就想,会不会是ProgressHUD特有的问题,所以我就试试其他HUD,比如非常流行的SVProgressHUD,然后,一切都好了……好了……了。

所以,解决方案就是,我全部替换成了SVProgressHUD,GITHUB上有。我看了两者的源码,技术太浅以及时间太紧,没看出来什么问题,有时间再仔细研究。

注:SVProgressHUD源码里面对于展示进度条的逻辑是这样的:

根据SVProgressHUD的层级结构可以看出,从底层到顶层依次是:UIControl (overlayView) -> SVProgressHUD -> UIView (hudView) -> UIVisualEffectView -> AnimatedView (具体动画视图) 。

主要区别应该就在上面这个层级上面。

参考资料:SVProgressHUD(2.0.3)原来是这样

原创粉丝点击