iOS6 / iOS7 状态栏高度适配

问题原因:iOS7的状态栏(status bar)不再占用单独的20px,所以如果你在iOS6上的界面布局是正常的,那么到了iOS7上就会变成下面这个样子:

           

左边是iOS6界面布局,右边是iOS7界面布局。这时有人会想着把iOS7界面上控件整体向下移动20px,但是当Interface Builder Document改成Xcode 4.6时又变成了如下情况:

           

界面不会因为你在不同的Interface Builder Document值下设置不同的布局而不同,所以必须用Xcode 5的iOS 6 / 7 Deltas机制解决。

假设你之前基于的是iOS6开发的应用,此时布局是正确的,移步到控件的size inspector页面对iOS 6 / 7 Deltas属性进行设置。

因为我们做的是高度适配,所以我们用到△Y和△Height两个值,我们现在是基于iOS6去适配iOS7,所以6上正确了,7的布局就会跟状态栏重叠,故View和TableView的△Y值都应该设置为20,即6上布局在7上显示时,Y坐标下移20px,这样就不会与状态栏重叠了。但是整体下移了20px,TableView底部20px的区域将无法显示,所以这时候要单独设置TableView的△Height为-20,即在7上显示时,TableView的高度要减小20px,以使TableView全部显示在屏幕内。此时将Interface Builder Document改为Xcode 5发现,界面显示正常,查看各控件的iOS 6 / 7 Deltas值,发现其与在Xcode 4.6下设置的值正好相反,即如果基于iOS7布局去修改iOS6的布局,那么应该将△Y设置为负值,即让控件在iOS6上显示时向上移动相应的高度。

最终的效果:

        




  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值