您的位置:首页 > 移动开发 > IOS开发

IOS开发 解决statusBar隐藏后,如何把它的那20像素的空白位置弄掉?

2013-05-13 09:35 447 查看
我是做照片预览的时候遇到了这个问题,现已解决:

在初始化数据的时候已有如下代码,但仍未解决:

Make sure to set wantsFullScreenLayout or the photo

will not display behind the status bar.
[selfsetWantsFullScreenLayout: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像素空白(二)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐