程序启动 开机引导介绍 setStatusBarHidden = yes;介绍结束之后 setStatusBarHidden = no; 问题是 首页的view 整体往上偏了 20像素,这个、、 怎么搞定。。
没有太看明白你的意思。
首先statusBar的高度就是20像素,如果你setStatusBarHidden=YES了,那么所有的View自然都会上移20像素,整个window的bounds就变成320*480了,而非普通带statusBar的320*480,这时候你所有的界面都要展昭320*480来设计。
如果你遇到的是,首页View的y坐标从屏幕外-20开始这种情况,那么应该是在statusbar的隐藏过程中window和view的坐标系出现了混乱,我实验没有重现这种情况,但以前遇到过,解决方案是 手动的重设window和view的frame
另外,我建议:如果你要隐藏statusBar那么应用的生命周期就一直隐藏,直接在plist里设置,不要用代码控制一会儿有一会儿没有。
偏移的视图控制器是vc的话:
显示statusBar同时将偏移设回去
setStatusBarHidden = YES;
CGRect frame = vc.view.frame;
frame.origin.y += 20;
vc.view.frame = frame;
你说的是引导界面的那个图吧。这个需要在info.plist中配置
可以设置
Status bar style和Status bar is initially hidden值。
我在4.5中看到可以在summary中设置了
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackTranslucent animated:YES];
navigationbar statusbar tabbar toolbar等,设置translucent属性为yes,就可以把这些对象占用的frame给消除掉。
如果想手动只有自己在hidden的时候设置frame。
获取到当前控制器,刷新布局: currentVC?.view.setNeedsLayout()