隐藏我的NavigationBar与此:

func hideAndShow(){

   if self.navigationController?.navigationBar.hidden == true {
        self.navigationController?.setNavigationBarHidden(false, animated: true)

    }else {
        self.navigationController?.setNavigationBarHidden(true, animated: true)
    }
 }


但是它也可以抬起我的视图(也许是因为视图位于导航下方),如何隐藏它而不抬起我的视图

请参阅下图以更好地了解

ios - 隐藏导航栏而不抬起 View-LMLPHP

如您所见,我的图像在隐藏NavigationBar的同时也被上移了,我不知道该如何解决?

我们可以只显示导航栏层下方的视图吗?

最佳答案

解决问题需要两个步骤:


self.edgesForExtendedLayout = UIRectEdge.All添加到viewWillAppear。结果,您的视图将从屏幕顶部而不是NavigationBar下方开始。您可以在此处阅读有关edgesForExtendedLayout的更多信息:https://stackoverflow.com/a/19585104/1447641
向您的ImageView添加{navigationbarheight}的最高约束。


之后,ImageView的位置不再受NavigationBar的影响。

10-08 06:15
查看更多