添加了一个导航条之后,view被导航条给覆盖了,并没有从导航条的下面开始。在iOS 7中,UIViewController引入了一个新的属性:edgesForExtendedLayout。 这个属性的默认值是UIRectEdgeAll。当你的容器是UINavigationController的时候,默认的布局就是从状态栏的顶部开始的。这就是为什么你设置的控件都往上漂移的原因。

这里写图片描述

有两种方法解决这个问题:

###1、设置edgesForExtendedLayout

    self.edgesForExtendedLayout = UIRectEdgeNone; //view不需要拓展到整个屏幕

###2、设置导航条的透明度

self.navigationController.navigationBar.translucent = NO;

这里写图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐