用这个隐藏我的NavigationBar:
func hideAndShow(){
if self.navigationController?.navigationBar.hidden == true {
self.navigationController?.setNavigationBarHidden(false, animated: true)
}else {
self.navigationController?.setNavigationBarHidden(true, animated: true)
}
}
但它也提升了我的视图(可能是因为View位于导航下方),如何在不抬起我的视图的情况下隐藏它
请参阅下面的图片以便更好地理解
你可以看到我的视图中的图像也会向上移动而隐藏NavigationBar任何想法如何解决这个问题?
我们可以只显示导航栏下面的视图???
答案 0 :(得分:1)
解决问题需要两个步骤:
将self.edgesForExtendedLayout = UIRectEdge.All
添加到viewWillAppear
。因此,您的视图将从屏幕顶部开始,而不是在NavigationBar下方。您可以在此处详细了解edgesForExtendedLayout
:https://stackoverflow.com/a/19585104/1447641
将{navigationbarheight}的顶部约束添加到ImageView。
之后,ImageView的位置不再受NavigationBar的影响。