隐藏NavigationBar而不抬起视图

时间:2016-06-16 08:50:03

标签: ios swift2

用这个隐藏我的NavigationBar:

func hideAndShow(){

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

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

但它也提升了我的视图(可能是因为View位于导航下方),如何在不抬起我的视图的情况下隐藏它

请参阅下面的图片以便更好地理解

image

你可以看到我的视图中的图像也会向上移动而隐藏NavigationBar任何想法如何解决这个问题?

我们可以只显示导航栏下面的视图???

1 个答案:

答案 0 :(得分:1)

解决问题需要两个步骤:

  1. self.edgesForExtendedLayout = UIRectEdge.All添加到viewWillAppear。因此,您的视图将从屏幕顶部开始,而不是在NavigationBar下方。您可以在此处详细了解edgesForExtendedLayouthttps://stackoverflow.com/a/19585104/1447641

  2. 将{navigationbarheight}的顶部约束添加到ImageView。

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