Reputation: 117
I'd like to change the letter spacing in the title of my navigation bar but I've had no success so far.
Thanks in advance.
Upvotes: 8
Views: 10349
Reputation: 121
A cool extension for UILabel:
extension UILabel{
func setCharacterSpacing(_ spacing: CGFloat){
let attributedStr = NSMutableAttributedString(string: self.text ?? "")
attributedStr.addAttribute(NSAttributedString.Key.kern, value: spacing, range: NSMakeRange(0, attributedStr.length))
self.attributedText = attributedStr
}
}
Usage:
label.setCharacterSpacing(4)
Upvotes: 7
Reputation: 2151
the bellow function works for me, hope this helps you too
func setCharacterSpacig(string:String) -> NSMutableAttributedString {
let attributedStr = NSMutableAttributedString(string: string)
attributedStr.addAttribute(NSKernAttributeName, value: 1.25, range: NSMakeRange(0, attributedStr.length))
return attributedStr
}
Upvotes: 2
Reputation: 171
You can set the title via code passing the title string with some blank spacing ("E x a m p l e"), or with a tab (\t) or via code like this:
let attributedString = NSMutableAttributedString(string: "Example")
attributedString.addAttribute(NSKernAttributeName, value: CGFloat(1.4), range: NSRange(location: 0, length: 9))
Then you assign attributedString to your title.
Upvotes: 3