【问题标题】:Navigation Bar Overlaps Info导航栏重叠信息
【发布时间】:2018-03-05 19:27:11
【问题描述】:

我的导航栏与 iPhone 顶部的信息重叠时遇到问题。我最初的导航栏是白色/半透明的,它没有引起问题。我觉得让它变黑会更好,只是现在它与 iPhone 的时间、电池和数据重叠。我将如何向下移动导航栏?

【问题讨论】:

  • 您想将 NavigationBar 的尺寸增大一点吗?

标签: ios swift statusbar navigationbar


【解决方案1】:

您需要创建一个自定义navigationBar,然后添加您想要的约束,但这通常不应该中断状态栏。您可以尝试更改 navigationBar 文本的字体大小:

self.navigationController?.navigationBar.titleTextAttributes = [ NSAttributedStringKey.font: UIFont.systemFont(ofSize: 10)]

更新:
经过一些澄清,您不想移动完成navigationBar,您只想更改statusBar(包含顶部的所有系统图标)的颜色。在你的 viewDidLoad 函数中添加这两行来改变你的背景颜色:

if let statusBar: UIView = UIApplication.shared.value(forKey: "statusBar") as? UIView {
    statusBar.backgroundColor = .white
}

【讨论】:

  • 这会在视图控制器中吗?如果我有一堆视图控制器怎么办?我必须把这些都放进去吗?
  • 你的意思是改字体还是自定义导航栏?
  • 不,我希望将黑色背景向下移动几个点,并使屏幕的最顶部看起来是白色的。
  • @RyanB.,您是否通过上述更新解决了您的问题?
【解决方案2】:

只要让这个类成为你每个 viewController 的父类 例如,您有一个 SignUpViewController 类,当前您的视图控制器将是这样的。

class SignUpViewController: UIViewController {
//Your all methods and properties are implemented here.

}

所以只要把上面类的父类从UIViewController改成下面写的类LargerNavigationBaseVC就好了。

class SignUpViewController: LargerNavigationBaseVC {
//Your all methods and properties are implemented here.

}


class LargerNavigationBaseVC: UIViewController {
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        self.navigationItem.prompt = " "
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多