如何增加UILabel中的字符间距

我在> = iOS6中创build了一个应用程序。 我想改变UILabel中的字符间距。 我已经在我的应用程序中添加了自定义字体“FUTURABT HEAVY”,但字符太靠近海誓山盟了。

我在这里find了很好的代码来增加字符间距。 但是,如果我试图改变它,而不是我的文字成为左alignment,而不是中心。

请帮助我这种情况。

你可能应该使用带NSKernAttributeName属性的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]; 

这个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 } } 

所以你可以使用它

 MyLabel.addCharactersSpacing(5, text: "Some Text") 

斯威夫特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 } } 

Swift 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 
  NSString *strDigit= @"001"; NSString *strCrushImpact =[NSStringstringWithFormat:@"%d",[strDigit intValue]]; // Set space in between character float spacing = 3.0f; NSMutableAttributedString *attributedStrDigit = [[NSMutableAttributedString alloc] initWithString:strWin]; [strCrushImpact addAttribute:NSKernAttributeName value:@(spacing) range:NSMakeRange(0, [strDigit length])]; label.attributedText = attributedStrDigit; 
Interesting Posts