UiNavigationController - 当右侧有 2 个按钮时,导航栏中的标题偏离中心

问题描述 投票:0回答:1

我在我的应用程序中使用 UINvagigationController,每个页面都设置自己的标题以及左右按钮。 工作得很好,直到我需要右边的两个按钮。仅将它们设置为栏按钮项目会使标题偏离中心,并且它们之间的空间比预期大得多:

这就是我设置右侧按钮的方式:

    let item1 = UIBarButtonItem(customView: self.btnGoToScan)
    let item2 = UIBarButtonItem(customView: self.btnExportImage)
    self.navigationItem.setRightBarButtonItems([item1, item2], animated: false)

我尝试设置这些项目的宽度,以及在它们之间添加负宽度的固定空间 - 没有任何改变:

let item1 = UIBarButtonItem(customView: self.btnGoToScan)
    item1.width = 24
    let item2 = UIBarButtonItem(customView: self.btnExportImage)
    item2.width = 24
    let negativeSpace = UIBarButtonItem(barButtonSystemItem: .fixedSpace, target: nil, action: nil)
    negativeSpace.width = -16
    self.navigationItem.setRightBarButtonItems([item1, negativeSpace, item2], animated: false)

如何使右侧栏项目关闭且标题始终居中?像这样:

ios uikit uinavigationcontroller uinavigationbar uinavigationitem
1个回答
0
投票

样本中的标题长度与期望的结果明显不同。

如果标题足够短,iOS 会尝试自动将其放在中间。尽管如果标题不适合 iOS 会尝试将其挤入,从而将其移至左侧。

用较短的标题尝试你的代码——它很可能会像预期的那样工作。

© www.soinside.com 2019 - 2024. All rights reserved.