Root ViewController View没有考虑TabBar和NavBar

问题描述:

我有一个viewcontroller嵌入导航和tabbar视图控制器。我假定self.view几何上是从导航栏底部开始的界限和标签栏的顶部。这是我在网上阅读的内容。通过viewWillAppear,视图被调整大小从本质上减去标签和导航栏。但是,这并不适合我。当我注销我的视图框架时,它是一样的... {{0, 0}, {375, 667}}。在viewDidLoad,viewDidLayoutSubview,willAppear,didAppear它是同一帧。因此,如果我将imageView作为self.view的子视图与框架(0,0,screenWidth, 200)。该imageView出现在导航栏中。在我的阅读中,这不是标准的行为。Root ViewController View没有考虑TabBar和NavBar

如果你想你的UIViewController开始把这个viewDidLoad中的导航栏下方:

self.edgesForExtendedLayout = UIRectEdgeNone; 
+0

我仍然无法改变我的观点的框架。这似乎导致了一个不同的框架,一个较低的高度。但如果我创建一个新的视图,并将其分配给viewWillAppear中的self.view,它会忽略该视图并注销同一个框架。 –

+0

我发布的代码根本不会改变框架。它只能防止UIViewController在导航栏下面延伸。为了帮助你调试问题,在UIViews – metronic

+0

周围放置了一些边框,它确实改变了视图。视图的高度实际上是现在屏幕高度减去状态+标签+导航栏。它只是我无法在任何视图*方法中手动更改框架。 –