ios 隐藏NavigationBar而不提升视图

yxyvkwin  于 2023-05-23  发布在  iOS
关注(0)|答案(1)|浏览(151)

用这个隐藏我的NavigationBar:

func hideAndShow(){

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

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

但是它也提升了我的视图(可能是因为视图在导航下面),我怎么能隐藏它而不提升我的视图呢
请参阅下图以更好地理解

正如你所看到的,我的图像在我的视图中也得到了转移,而隐藏的NavigationBar任何想法,我如何才能解决这个问题??
我们可以只显示导航栏下面的视图吗???

vqlkdk9b

vqlkdk9b1#

需要两个步骤来解决您的问题:
1.将self.edgesForExtendedLayout = UIRectEdge.All添加到viewWillAppear。因此,您的视图将从屏幕顶部开始,而不是从NavigationBar下方开始。你可以在这里阅读更多关于edgesForExtendedLayout的内容:https://stackoverflow.com/a/19585104/1447641
1.将{navigationbarheight}的顶部约束添加到ImageView。
之后,ImageView的位置将不再受NavigationBar的影响。

相关问题