Uitableview 自定义导航栏高度

Uitableview 自定义导航栏高度,uitableview,uiviewcontroller,autolayout,uinavigationbar,ios11,Uitableview,Uiviewcontroller,Autolayout,Uinavigationbar,Ios11,我已经将UINavigationBar子类化,并自定义了导航栏的高度。现在它的高度是108磅。但是在所有的屏幕中,我在自定义导航栏后面有tableview/scrollview的顶部区域。我尝试了在顶部栏下延伸边,但它只移动了64磅 是否有任何方法可以在不修改顶部约束或设置每个屏幕的内容插入的情况下移动自定义导航栏下方的所有内容 首先,我要避免更改apple导航栏的高度。这可能会导致更多的问题。如你所见 无论如何,您可以更改tableView的contentInset tableView.con

我已经将UINavigationBar子类化,并自定义了导航栏的高度。现在它的高度是108磅。但是在所有的屏幕中,我在自定义导航栏后面有tableview/scrollview的顶部区域。我尝试了在顶部栏下延伸边,但它只移动了64磅


是否有任何方法可以在不修改顶部约束或设置每个屏幕的内容插入的情况下移动自定义导航栏下方的所有内容

首先,我要避免更改apple导航栏的高度。这可能会导致更多的问题。如你所见

无论如何,您可以更改tableView的contentInset

tableView.contentInset = UIEdgeInsets(top: HEIGHTOFNAVIGATIONBAR - ADDEDHEIGHT, left: 0, bottom: 0, right: 0)
你试过了吗-

automaticallyadjustsscrollviewinsets = false
这可以从故事板和代码中完成

另外,尝试将导航栏设置为不透明


希望这有帮助。

但是这样,我必须在所有屏幕上设置此选项(有30多个屏幕)。它不是应该根据新的导航栏高度改变屏幕的TopLayoutGuide吗?苹果提供了定制导航栏的选项。我们可以将自定义类设置为导航控制器的导航栏。所以这应该不会导致任何问题(不幸的是,它会导致问题)。如何更改导航栏的大小?您是否覆盖sizeThatFits?我过去一直在覆盖sizeThatFits。但在iOS 11中,它不起作用。所以我覆盖了setFrame和LayoutSubViews,我尝试了自动调整滚动视图插入,但不是不透明的。但即使在这一变化之后,问题仍然存在。我们在导航栏后面有ViewController的视图。