【发布时间】:2021-11-08 13:11:33
【问题描述】:
我尝试以编程方式在我的 viewController 中添加 UINavigationBar,但是我遇到了标记问题,这使我的导航栏标题移动到安全区域的顶部边框,我想知道如何将此标题移动到导航栏的中心。我找不到它的任何边距、填充或框架配置。所以我的问题是如何垂直居中 UINavigationBar 的内容
这是创建导航栏的代码:
private lazy var navItem: UINavigationItem = {
let item = UINavigationItem(title: R.string.localization.supportNavigationBarTittle())
return item
}()
private lazy var navBar: UINavigationBar = {
let bar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: view.frame.size.width, height: 60))
bar.setTitleVerticalPositionAdjustment(CGFloat(70), for: UIBarMetrics.default)
return bar
}()
在viewDidLoad 方法中,我将工具栏附加到整个视图
navBar.tintColor = .white
view.addSubview(navBar)
let doneItem = UIBarButtonItem(image: UIImage(named: R.image.crossIcon.name), style: .plain, target: self, action: #selector(selectorName(_:)))
doneItem.imageInsets = UIEdgeInsets.init(top: 16, left: 8, bottom: 20, right: 8);
navItem.leftBarButtonItem = doneItem
navBar.setItems([navItem], animated: false)
不幸的是,我得到了这个零上边距的标题,我什至找不到修复它的方法。
附言
我是 ios 开发的新手,所以我会犯很多愚蠢的错误。
【问题讨论】:
-
不要手动添加导航栏,只需使用您的控制器作为根创建一个
UINavigationController并显示那个(并设置标题 - 可以通过title的属性自动设置)顺便说一句,你的控制器 - 当然还有关闭按钮)。
标签: ios uinavigationbar uinavigationitem