我是做照片预览的时候遇到了这个问题,现已解决:
在初始化数据的时候已有如下代码,但仍未解决:
Make sure to set wantsFullScreenLayout or the photo
will not display behind the status bar.
[ self setWantsFullScreenLayout : YES ];BOOL isStatusbarHidden = [[UIApplicationsharedApplication]isStatusBarHidden];
[selfsetStatusbarHidden:isStatusbarHidden];
self.hidesBottomBarWhenPushed =YES;
后来查找资料后,在 viewDidLoad和viewWillDisappear方法中加入了如下代码,最后问题解决(参考地址:http://www.cocoachina.com/bbs/simple/?t26962.html)- (void)viewDidLoad { [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide]; [super viewDidLoad];}
記得要在[super viewDidLoad];之前喔~
- (void)viewWillDisappear:(BOOL)animated{ [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide];}
這邊是退出這個view時把statusbar加回來
补充:再次运行,发现问题又出现了,参考了http://tudouyutou2011.blog.163.com/blog/static/181765470201271692941275/问题解决了。。。。
view的系列过程为:loadView->viewDidLoad->viewWillAppear->viewDidAppear->viewWillDisappear->viewDidDisappear
1:viewWillAppear里隐藏statusbar
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
}
2:viewDidAppear里调整frame
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
self.view.frame = CGRectMake(0, -20, 320, 480);
}
3:viewWillDisappear里显示statusbar以免影响其他viewController(可选,根据自己的情况做)
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade];
}
可以看一下我的另一篇: IOS开发 图片预览出现20像素空白(二)