用这个隐藏我的NavigationBar:
func hideAndShow(){
if self.navigationController?.navigationBar.hidden == true {
self.navigationController?.setNavigationBarHidden(false, animated: true)
}else {
self.navigationController?.setNavigationBarHidden(true, animated: true)
}
}
但是它也提升了我的视图(可能是因为视图在导航下面),我怎么能隐藏它而不提升我的视图呢
请参阅下图以更好地理解
正如你所看到的,我的图像在我的视图中也得到了转移,而隐藏的NavigationBar任何想法,我如何才能解决这个问题??
我们可以只显示导航栏下面的视图吗???
1条答案
按热度按时间vqlkdk9b1#
需要两个步骤来解决您的问题:
1.将
self.edgesForExtendedLayout = UIRectEdge.All
添加到viewWillAppear
。因此,您的视图将从屏幕顶部开始,而不是从NavigationBar下方开始。你可以在这里阅读更多关于edgesForExtendedLayout
的内容:https://stackoverflow.com/a/19585104/14476411.将{navigationbarheight}的顶部约束添加到ImageView。
之后,ImageView的位置将不再受NavigationBar的影响。