【发布时间】:2018-03-05 19:27:11
【问题描述】:
我的导航栏与 iPhone 顶部的信息重叠时遇到问题。我最初的导航栏是白色/半透明的,它没有引起问题。我觉得让它变黑会更好,只是现在它与 iPhone 的时间、电池和数据重叠。我将如何向下移动导航栏?
【问题讨论】:
-
您想将 NavigationBar 的尺寸增大一点吗?
标签: ios swift statusbar navigationbar
我的导航栏与 iPhone 顶部的信息重叠时遇到问题。我最初的导航栏是白色/半透明的,它没有引起问题。我觉得让它变黑会更好,只是现在它与 iPhone 的时间、电池和数据重叠。我将如何向下移动导航栏?
【问题讨论】:
标签: ios swift statusbar navigationbar
您需要创建一个自定义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
}
【讨论】:
只要让这个类成为你每个 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 = " "
}
}
【讨论】: