更改导航栏高度后,相关约束不会更新

时间:2017-05-21 22:11:34

标签: ios swift xcode

我的项目中有导航控制器。我想根据视图控制器的主视图高度来设置它的高度。如果我可以在IB中设置它,那么我不会遇到问题,但我找不到方法。所以我使用以下内容我的导航控制器类的ViewDidAppear中的命令。

self.navigationBar.frame = CGRectMake(0, UIApplication.sharedApplication().statusBarFrame.size.height, self.view.frame.size.width, self.view.frame.size.height * 0.05)

我还有另一个视图控制器,它使用这个导航控制器并在其中有另一个名为ViewTop的子视图。 ViewTop顶部等于TopLayoutGuide的底部。因为我有导航栏,实际上它的顶部设置在导航栏的底部。

在使用上述命令之前,ViewTop的顶部正确地等于导航栏的底部。 sample without problem

通过上述命令更改导航栏高度时出现问题。 ViewTop的顶部不会更新到导航栏的底部。在约束计算之后,似乎导航条的高度发生了这种变化。

sample with problem

在我的Navigation Controller类的viewWillLayoutSubviews和viewDidLayoutSubviews中使用上面的命令也没有成功。我没有在代码中设置任何其他约束,只使用了IB。

StoryBoard ScreenShot

我该怎么办?

0 个答案:

没有答案