在UIToolbar中调整UIBarButtonItem标题的垂直位置

Ant*_*ine 18 uitoolbar uibarbuttonitem swift

是否可以调整UIBarButtonItem内部的标题UIToolbar

我尝试了以下几行代码但没有成功:

UIBarButtonItem.appearance().setTitlePositionAdjustment(UIOffset(horizontal: 30, vertical: 30), forBarMetrics: UIBarMetrics.Default)
Run Code Online (Sandbox Code Playgroud)

还有这个:

self.setTitlePositionAdjustment(UIOffset(horizontal: 30, vertical: 30), forBarMetrics: UIBarMetrics.Compact)
Run Code Online (Sandbox Code Playgroud)

Clo*_*ife 6

更改baselineOffset文本的。

let doneButton = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(self.someFunction))
let attributes = [NSAttributedString.Key.baselineOffset: NSNumber(value: -3)]
doneButton.setTitleTextAttributes(attributes, for: .normal)
Run Code Online (Sandbox Code Playgroud)

负值baselineOffset会将标题文本向下移动,正值会将其向上移动。0 是默认值。

我在 iOS 11 上测试了这个。


wid*_*der 5

垂直偏移UIToolBar内的UIBarButtonItem(文本!)似乎不适用于Xcode 7(Beta 6)。

根据文档,您是正确的,应该这样做: UIBarButtonItem.appearance().setTitlePositionAdjustment

在AppDelegate中全局:

UIBarButtonItem.appearance().setTitlePositionAdjustment(UIOffset(horizontal: 30, vertical: 30), forBarMetrics: UIBarMetrics.Default)
Run Code Online (Sandbox Code Playgroud)

或在本地与商品出口本身:

(迅速)

self.myBarItem.setTitlePositionAdjustment(UIOffset(horizontal: 30, vertical: 30), forBarMetrics: UIBarMetrics.Default)
Run Code Online (Sandbox Code Playgroud)

(Obj C)

[self.myBarItem setTitlePositionAdjustment:UIOffsetMake(30, 30) forBarMetrics: UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)

这是外观错误吗?

  • 水平工作但垂直工作没有任何改变,您知道为什么吗? (7认同)