我在我的应用程序中使用 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 会尝试自动将其放在中间。尽管如果标题不适合 iOS 会尝试将其挤入,从而将其移至左侧。
用较短的标题尝试你的代码——它很可能会像预期的那样工作。