UIImageViewController对UIStatusBar的影响

碰到的问题:

    背景: A、B控制器的视图设置StatusBarStyle为default

A控制器进入一个UIImagePickerController后返回,然后切换到平行的控制器B,结果发现B的视图最上面与UIStatusBar重叠。

解决过程:

1、首先得想到的解决办法就是 判断IOS7及以上设置

        self.extendedLayoutIncludesOpaqueBars =NO;

        self.edgesForExtendedLayout=UIRectEdgeNone;

等等这些值,发现还是没有办法解决问题。猜想应该不是这些造成的。

2、继续猜想是不是进入UIImagePickerController 后改变了UIStatusBar的stlye,这么想的理由是出问题之前UIStatusBar是不透明的,后来变成透明了。后来在stack overFlow 点击打开链接上看到一篇问题,最终是证实了我的猜想。


解决方法:

设置UIImagePickerViewController的delegate,然后实现代理方法

- (void)navigationController:(UINavigationController *)navigationController 
      willShowViewController:(UIViewController *)viewController 
                    animated:(BOOL)animated {

    if ([navigationController isKindOfClass:[UIImagePickerController class]] && 
        ((UIImagePickerController *)navigationController).sourceType == UIImagePickerControllerSourceTypePhotoLibrary) {
        [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:NO];
    }
}
至于UIStatusBarStyle的样式根据你的代码实际情况设置。搞定。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值