我只想降低NavigaitonBar的高度。
我将以下代码放在 ViewDidLoad 中,然后我运行了该项目。高度瞬间改变,但很快恢复到默认高度。
CGRect navRect = self.navigationController.navigationBar.frame;
navRect.size.height = 30;
self.navigationController.navigationBar.frame = navRect;
我尝试将这些代码放在 viewWillAppear 中,同样的问题又发生了!
但是在 viewDidAppear 中,它正常工作,高度已经改变。
我总是在viewDidLoad中添加一些barButtonItem。它说明了NavigationController已在viewDidLoad中成功初始化,但为什么不能更改高度?
这让我很困惑。
谢谢!
答案 0 :(得分:3)
自添加自动布局以来,视图的生命周期也发生了变化。
视图中子视图的所有几何修改都应该在viewDidLayoutSubviews
方法中完成。
正如您从此方法的名称中所看到的,这意味着在调用此方法时,所有子视图都将正确放置。
答案 1 :(得分:1)
如果您的表每次都需要使用新数据加载数据,那么它应该在viewWillAppear下 否则,如果表需要通过单个数据重新加载,并且没有对Data执行任何编辑操作,则应使用viewDidload