iphone--MBProgressHUD 显示方向异常(keyWindow问题)
2012-11-10 13:32
399 查看
一直在iphone上使用MBProgressHUD做提示信息视图,一直都没有什么问题,但用在ipad上使用时,却有时会出现显示方向不正常,如ipad屏幕是横的,但当MBProgressHUD出现时却按照竖屏的方向进行显示,一直不解,仔细看了出现的情况,发现只在当UIAlerView和MBProgressHUD一起出现的时候才有出现以上的情况
看了MBProgressHUD的源码,想了下原因可能如下
我们初始化MBProgressHUD时可能会用到下面方式初始化
但是当UIAlertView出现时会重新初始化一个UIWindow并设置为keyWindow,这时当使用[[UIApplication shareApplication] keyWindow] 时获取到的就不是你本意想拿到的应用程序的UIWindow,另外UIAlertView的UIWindow方向可能就不是横屏的了,所以才出现以上的情况;
解决:使用
_hud = [[MBProgressHUD
alloc] initWithView:view];
初始化就行了
还有另一种情况
当你在UIAlertView委托方法
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex;用第一种方法显示(即需要获取keyWindow),还是不能获取到主程序的keyWindow,
解决方法 用另一个委托就可以了
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex;
以上亲测没有问题
看了MBProgressHUD的源码,想了下原因可能如下
我们初始化MBProgressHUD时可能会用到下面方式初始化
UIWindow *window = [[UIApplication sharedApplication] keyWindow]; _hud = [[MBProgressHUD alloc] initWithWindow:window];
但是当UIAlertView出现时会重新初始化一个UIWindow并设置为keyWindow,这时当使用[[UIApplication shareApplication] keyWindow] 时获取到的就不是你本意想拿到的应用程序的UIWindow,另外UIAlertView的UIWindow方向可能就不是横屏的了,所以才出现以上的情况;
解决:使用
_hud = [[MBProgressHUD
alloc] initWithView:view];
初始化就行了
还有另一种情况
当你在UIAlertView委托方法
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex;用第一种方法显示(即需要获取keyWindow),还是不能获取到主程序的keyWindow,
解决方法 用另一个委托就可以了
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex;
以上亲测没有问题
相关文章推荐
- MBProgressHUD 显示方向异常
- MBProgressHUD 显示方向异常
- 添加/删除程序空白窗口及控制面板窗口显示异常问题的解决方法
- MBProgressHud的显示异常有问题(有黑色菱形)
- iphone中input按钮设置disabled属性出现灰色背景没有显示问题
- EasyUI中datagrid显示异常问题——行宽不起作用
- 关于FusionCharts图表宽度width的设置问题导致图表显示异常的解决办法
- ASP.NET——KindEditor文本编辑器——使用模板页显示异常问题
- 关于MBProgressHUD显示问题
- MBProgressHUD不能立即显示问题
- 性能测试过程中前端某图片显示异常问题及解决思路
- 页面有两个RecyclerView无法正常显示且镶嵌ScrollView滑动异常问题
- iOS 上传的图片在HTML上显示时,图片方向信息(EXIF Orientation)异常
- 关于FusionCharts图表宽度width的设置问题导致图表显示异常的解决办法
- 微信公众号开发-iphone手机时间显示NaN:NaN的问题修改
- 报告一个IE很奇葩的滚动条问题——百分比计算宽度为浮点数时的滚动条显示异常
- WIN7下重建图标缓存(解决MFC.exe桌面图标显示异常问题)
- 解决Myeclipse中导入epf文件之后xml及jsp等各种页面中的部分显示异常问题
- OpenCV问题集锦,图片显示不出来,WaitKey(0),imread()不能读图片,未经处理的异常,等问题集合
- 解决LisTview 和gridView在ScrollView中显示不全和其他异常的问题