Dil*_*lip 44 uilabel ios character-spacing
我在> = iOS6中创建了一个应用程序.我想改变UILabel中的字符间距.我在我的应用程序中添加了自定义字体"FUTURABT HEAVY"但字符太靠近了彼此.
我在这里找到了很好的代码来增加字符间距.但是如果我试图改变它而不是我的文本变成左对齐而不是中心.
请帮我解决这个问题.
B.S*_*.S. 80
你应该使用NSAttributedString带NSKernAttributeName属性
这是一个小例子:
UILabel *label = [[UILabel alloc] initWithFrame:self.view.bounds];
NSString *string = @"Some important text";
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:string];
float spacing = 5.0f;
[attributedString addAttribute:NSKernAttributeName
value:@(spacing)
range:NSMakeRange(0, [string length])];
label.attributedText = attributedString;
[self.view addSubview:label];
Run Code Online (Sandbox Code Playgroud)
Ste*_*eve 60
Swift扩展为此
extension UILabel {
func addCharactersSpacing(spacing:CGFloat, text:String) {
let attributedString = NSMutableAttributedString(string: text)
attributedString.addAttribute(NSKernAttributeName, value: spacing, range: NSMakeRange(0, text.characters.count))
self.attributedText = attributedString
}
}
Run Code Online (Sandbox Code Playgroud)
所以你可以使用它
MyLabel.addCharactersSpacing(5, text: "Some Text")
Run Code Online (Sandbox Code Playgroud)
Kru*_*nal 13
斯威夫特4
extension UILabel {
func setCharacterSpacing(characterSpacing: CGFloat = 0.0) {
guard let labelText = text else { return }
let attributedString: NSMutableAttributedString
if let labelAttributedText = attributedText {
attributedString = NSMutableAttributedString(attributedString: labelAttributedText)
} else {
attributedString = NSMutableAttributedString(string: labelText)
}
// Character spacing attribute
attributedString.addAttribute(NSAttributedStringKey.kern, value: characterSpacing, range: NSMakeRange(0, attributedString.length))
attributedText = attributedString
}
}
Run Code Online (Sandbox Code Playgroud)
斯威夫特3
let label = UILabel()
let stringValue = "Sample text"
let attrString = NSMutableAttributedString(string: stringValue)
attrString.addAttribute(NSKernAttributeName, 2: style, range: NSRange(location: 0, length: stringValue.characters.count))
label.attributedText = attrString
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27967 次 |
| 最近记录: |