上一遍文章通过XIB的设置达到了状态栏和view重合的问题,这一篇我们讲一讲网传的修改window frame方法。
先上步骤:
第一:在appdeletage里面 添加如下代码:
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
self.window.frame = CGRectMake(0.0f,20.0f,self.window.frame.size.width,self.window.frame.size.height-20.0f);
}
2.在info.plist文件里面 属性:View controller-based status bar appearance 值设为NO。
下面看效果:
在看下图,你会发现一个问题:
这是什么原因导致的呢?我发现,由于window你又548变成了528吧,但是你发现tableview的高度还是548,导致了有20个像素不能显示。那有的同学会说,直接改成528不就得了么,是的,可以改,改后你发现IOS7上确实没有了缺像素的问题,但是在IOS6有直接缺半截,看下图:
所以呢,由我亲自测试,这种方法想要适配IOS7和IOS6有点不太靠谱。
最后解释一下几个名词设置的作用:
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
- (BOOL)prefersStatusBarHidden
{
return NO;
}
在plist中设置View controller-based status bar appearance 值设为YES..
这些的作用是:基于controller,动态控制statusbar的隐藏与样式。
后面我在看看其他什么方法,也欢迎童鞋们提出意见 留言交流。
本文深入分析了在iOS7和iOS6环境下,通过修改windowframe方法来解决状态栏和view重合问题的技术细节。详细阐述了在AppDelegate和Info.plist文件中实施的代码步骤,并对比了不同iOS版本下的实际效果,揭示了该方法在适配不同iOS版本时的局限性。同时,解释了几个关键设置的作用及其在状态栏控制中的重要性。
1567

被折叠的 条评论
为什么被折叠?



