也来说说ios6 ios7的状态栏适配的问题

原创 2013年12月04日 10:44:03

 

最近把开发环境升级到xcode5了,sdk也升级到了ios7了,也和大家一样遇到一些郁闷的问题。不过首先值得肯定的是xib文件变小了,网上很多说小到只有原来的十分之一,在我这里也是这样的。

最令我头痛的问题是状态栏的问题,我想很多人也遇到了,下面说说我是怎么解决的。

1,首先推荐下官方文档 https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TransitionGuide/SupportingEarlieriOS.html#//apple_ref/doc/uid/TP40013174-CH14-SW1  网上有些别的处理方式,但总觉得不靠谱。英语好的推荐来看下,像我这种英语不好的也咬咬牙来看下。

2,头痛的是我们发现,状态栏在 <=ios6 是有占20个像素的,viewController.viewy坐标是用第20个像素开始的。但是在ios7中状态栏是不占空间的,他是半透明漂浮在view上面的。所以问题就在于如果我把subViewy坐标的0位置开始布局,则在<=ios6中显示正常,在ios7中却会部分被状态栏覆盖。如果在View上预留20个像素。则在ios7中正常,在<=ios6中就会多出一段空白。

3,解决办法就是在ios7中把subview全部往下移,以在最上方留出20像素的空间来显示状态栏。可是如何来实现这个呢?看上面推荐的官方文档。

4,看完官方文档后,我采用的方式是:

4.1,取消勾选use autolayout。说实话,不取消勾选时如何来实现我是还不会。

 

 

取消勾选的目的是,取消之后才会有这个deltas

 

4.2,填deltas值 deltaY=Y_ios6 – Y_ios7。按照第二条的分析,我们希望ios6Y_ios6等于0ios7Y_ios7等于20,那么deltaY就应该是 -20。因为把y下移了,而屏幕大小不变,所以这边应该同时把deltaHeight设置成 20Height_ios6 – Height_ios7)。所以这边的结果是

 

 

4.3,可是如果每个控件都改,那不是很累吗,而且改动的太多了,不是吗?以下是本人想到的一个馊主意,供参考。比如我工程中得一个view是这样子的:

 

修改时,我新增了一个view,把原来的View作为新增viewsubview。把与viewcontroller关联的view重新关联到新增的View上来。修改后结果如下:

 

view1的为新增的view。这样之后只需要对view进行delta设置,其他控件不用再设置了。

 

5,对状态栏的适配至此就完成了。当然了对屏幕大小的适配还要调整Autosizing,这个大家自己修改了。

相关文章推荐

IOS6/IOS7状态栏通配问题

近期由于IOS7的发布,所以应用的适配潮可谓是都搞的锣鼓喧天,甚是热闹,因此呢,因适配IOS7而产生的问题也是铺天盖地的卷来,所以了,我也从简单的状态栏适配开始,先研究了下关于状态栏的适配,特总结如下...

ios6 7适配

  • 2013年12月26日 12:34
  • 422KB
  • 下载

ios6与ios7及之后适配的常见问题

1、Ios7之后的一大特点是导航栏不再占据状态栏的高度,而是在状态栏的基础上另外占用了一个44的高度,实为64,所以在自定义的导航栏中,适配导航栏时,一个简便的方法是ios7之前的版本使用高度为44的...
  • chjx501
  • chjx501
  • 2015年02月28日 09:07
  • 475

IOS开发,启动界面对IOS7和IOS6的适配问题

在XCode5中,新创建的工程中只能shi'yo
  • zhuxueh
  • zhuxueh
  • 2014年05月22日 17:55
  • 448

58.iOS6 7 cell适配 tableView背景

1.设置tableView的背景 // 设置tableview的背景颜色 self.tableView.backgroundColor = [UIColor colorWithPatternImag...

ios6/io7 画面适配

                         ...
  • yan8024
  • yan8024
  • 2013年12月09日 16:02
  • 11431

ios7 ios6(3.5inch,4inch)适配

  • 2013年09月26日 11:21
  • 2.27MB
  • 下载

ios6、7 版本适配

1,首先 1 2 3 4 5 6 7 8 9 //定义宏,判断ios7 #define IOS7 [[[UIDevice currentD...

iOS6、7、8、9新特性汇总和适配说明

iOS6、7、8、9新特性汇总和适配说明

iOS6和iOS7代码的适配(2)——status bar

转自:http://blog.csdn.net/sakulafly/article/details/17841239 用Xcode5运行一下应用,第一个看到的就是status bar...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:也来说说ios6 ios7的状态栏适配的问题
举报原因:
原因补充:

(最多只允许输入30个字)