使用 Swift 调整 UIBarButtonItem 的字距
Posted
技术标签:
【中文标题】使用 Swift 调整 UIBarButtonItem 的字距【英文标题】:Kerning on a UIBarButtonItem with Swift 【发布时间】:2016-01-18 20:17:33 【问题描述】:我有一个 UIBarButtonItem 我想要内容文本 Kerned。 (我设置栏按钮项如下:Add NSAttributedString to UIBarButtonItem)
使用它,在属性数组中,我添加了 NSKernAttributeName 但它似乎根本不适用。我可以更改字体大小、字体等,但字距永远不会改变。
如何正确更改 UIBarButton 文本上的 Kern 值?
【问题讨论】:
【参考方案1】:您可以这样做的方法是使用 customView 初始化 UIBarButtonItem。自定义视图应该是 UIButton。
let button = UIButton(type: .Custom)
let attributes = [
NSFontAttributeName: UIFont.boldSystemFontOfSize(12),
NSForegroundColorAttributeName: UIColor.redColor(),
NSKernAttributeName: CGFloat(1.7)
]
button.frame = CGRectMake(0.0, 0.0, 60, 35)
let attributedTitle = NSAttributedString(string: "CLOSE", attributes: attributes)
button.setAttributedTitle(attributedTitle, forState: .Normal)
button.addTarget(self, action: #selector(Controller.leftBarButtonItemSelected), forControlEvents: .TouchUpInside)
let barButton = UIBarButtonItem.init(customView: button)
navigationItem.leftBarButtonItem = barButton
【讨论】:
是的,我从来没有对这个答案表示赞赏。它实际上并不完全正确,我必须返回该项目的代码以提供正确的方法,但这是使其正常工作的主要帮助。抱歉,花了这么长时间才给你答案。现在会这样做。以上是关于使用 Swift 调整 UIBarButtonItem 的字距的主要内容,如果未能解决你的问题,请参考以下文章
使用 NSCoding 保存 TableView 单元格的重新排序
使用图像上传 Swift 动态调整 UICollectionViewCell 的大小