在iOS 6和iOS 7上为UINavigationBar管理Autolayout

时间:2014-02-12 10:32:46

标签: ios uinavigationbar autolayout

我正在开发适用于iOS 6和iOS 7的iPad应用程序。我已经激活了AutoLayout,并且UINavigationBar周围有一些虚拟现实。

例如,我有一个页面包含UINavigationBar,然后是UILabel,然后是UICollectionView

    在iOS 6上,UILabel出现在正确的位置(UINavigationBar下方),但隐藏了UICollectionView的底部。

    iOS 7上的
  • 恰恰相反:UILabel隐藏在UINavigationBar下,但UICollectionView的底部很好。

我应该如何处理这种情况?

2 个答案:

答案 0 :(得分:3)

使用此

self.navigationController.navigationBar.translucent = NO;

答案 1 :(得分:0)

在iOS 7中,您应该将UINavigationBar视为不是屏幕的一部分,它是可见的,但在绘制视图时不会考虑它。您可以解决使用“iOS 6/7 Deltas”处理xib文件的问题,在iOS 7中添加deltaY +20和deltaHeight -20(第一个所有这些都确保在File Inspector面板中设置了“View as iOS 6.1 and earlylier”)