隐藏导航栏使视图中的所有内容变短

Posted

技术标签:

【中文标题】隐藏导航栏使视图中的所有内容变短【英文标题】:Hiding Navigation bar short everything in view up 【发布时间】:2016-01-25 22:29:48 【问题描述】:

我有以下情节提要设置:

故事板:

我在点击时隐藏了导航栏和工具栏,但是当导航栏消失时 UITextView 会向上移动。

    lyrics.addGestureRecognizer(UITapGestureRecognizer(target: self, action: "show_fdw_bck"))

    func show_fdw_bck () 
    print("screen tapped")
    if SongMgr.settings2 == false 
        fwdappear.hidden = true
        bckappear.hidden = true
        navigationController?.navigationBarHidden = true
        navigationController?.setToolbarHidden(true, animated: false)
        //lyrics.frame = CGRect(x: 10, y: 80, width: self.view.frame.size.width - 20, height: self.view.frame.size.width)
        SongMgr.settings2 = true
     else 
        fwdappear.hidden = false
        bckappear.hidden = false
        navigationController?.navigationBarHidden = false
        navigationController?.setToolbarHidden(false, animated: false)
        //lyrics.frame = CGRect(x: 10, y: 0, width: self.view.frame.size.width - 20, height: self.view.frame.size.width)

        SongMgr.settings2 = false
    


我试图改变场景中对象的顺序,将 textview 移动到 View 的底部解决了这个问题,但它隐藏了 UIButtons。任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

UITextView 上移的原因是约束保持不变。有几种方法可以解决这个问题,一种选择是为UITextView 的上边距设置IBOutlet,然后将constant 属性设置为+64(导航的高度bar) 的当前状态。

另一种方法是在情节提要中重做 UITextView 的约束,并根据需要为特定的优先级设置不同的优先级。

【讨论】:

谢谢,我不知道你可以在代码中更改布局约束。添加以下内容解决了我的问题@IBOutlet weak var TopMargin: NSLayoutConstraint!TopMargin.constant = TopMargin.constant - 44

以上是关于隐藏导航栏使视图中的所有内容变短的主要内容,如果未能解决你的问题,请参考以下文章

在 SwiftUI 中的多个导航视图的情况下隐藏导航栏

隐藏导航栏和内容之间的分隔线

在基于导航的应用程序-iphone中的选定视图中隐藏导航栏

启用自动布局的 iOS 调整视图大小

图像视图在滚动视图中隐藏导航栏

带有半透明导航栏的滚动条