SVProgressHUD在某些情况下不显示的问题解决办法

SVProgressHUD 是强大的toast工具,但有些情况下会失效。个人遇到的情况是从相册选择照片,返回到上一级页面时,SVProgressHUD就会失效。

解决方法是更改SVProgressHUD默认配置:

[SVProgressHUD setMaxSupportedWindowLevel:NSIntegerMax];

[SVProgressHUD setContainerView:[UIApplication sharedApplication].delegate.window];

导致该问题的原因是:

SVProgressHUD文件中有一个frontWindow对象,负责承载toast内容。而该对象需要满足以下条件才会不为空:
遍历UIApplication.sharedApplication.windows,其中window的screen是UIScreen.mainScreen&window可见&level介于UIWindowLevelNormal和maxSupportedWindowLevel(默认2000)之间&window.isKeyWindow时该window才会赋值给frontWindow。

所以,才有上面的两行代码设置,第一行是设置level为最大整数,第二行是取delegate的window,[UIApplication sharedApplication].delegate.window不会为nil。

...

http://www.cnblogs.com/PaulpauL/ 版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:https://www.cnblogs.com/PaulpauL/p/14768347.html