码迷,mamicode.com
首页 > 其他好文 > 详细

MBProgressHUD 显示方向异常

时间:2014-11-21 10:48:19      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:ios   iphone   mbprogresshud   mbprogresshud 显示方向   

一直在iphone上使用MBProgressHUD做提示信息视图,一直都没有什么问题,但用在ipad上使用时,却有时会出现显示方向不正常,如ipad屏幕是横的,但当MBProgressHUD出现时却按照竖屏的方向进行显示,一直不解,仔细看了出现的情况,发现有2种情况会出现方向异常:1.用 presentViewController 出来的控制器,且方向固定,方向与设备方向不一致。2.当UIAlerView和MBProgressHUD一起出现的时候。

我们初始化MBProgressHUD时可能会用到下面方式初始化

  1. UIWindow *window = [[UIApplication sharedApplication] keyWindow];  
  2. _hud = [[MBProgressHUD alloc] initWithWindow:window];  

但是当UIAlertView出现时会重新初始化一个UIWindow并设置为keyWindow,这时当使用[[UIApplication shareApplication] keyWindow] 时获取到的就不是你本意想拿到的应用程序的UIWindow,另外UIAlertView的UIWindow方向可能就不是横屏的了,所以才出现以上的情况;

解决:使用 

_hud = [[MBProgressHUD allocinitWithView:view];

初始化就行了

还有另一种情况

当你在UIAlertView委托方法

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex;用第一种方法显示(即需要获取keyWindow),还是不能获取到主程序的keyWindow,

解决方法 用另一个委托就可以了

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex;

以上亲测没有问题

MBProgressHUD 显示方向异常

标签:ios   iphone   mbprogresshud   mbprogresshud 显示方向   

原文地址:http://blog.csdn.net/zhangping871/article/details/41343837

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!