0

attributed strings在标签上使用来更改字母之间的间距:

var attributedString=NSMutableAttributedString(string: "Fifi floflo")
attributedString.addAttribute(NSKernAttributeName, value: CGFloat(10), range: NSRange(location: 0, length: attributedString.length))
label.attributedText=attributedString

除了两组字母“ fl ”和“ fi ”(也许其他我目前没有看到)之外,字距调整效果很好。我正在使用“Avenir-medium”字体,但我使用基本的 Arial 字体进行了测试,但问题仍然存在。

带有“个人资料”一词

用一句话

4

1 回答 1

2

NSAttributedStrings 默认启用连字。连字将悬垂的字符组合组合成单个字形。如果您正在应用字母间距,您将需要禁用它们 - 否则这些字母对字形将不会分开。

attributedString.addAttribute(NSLigatureAttributeName, 
  value:0, 
  range: NSRange(location: 0, length: attributedString.length))

从文档:

NSligatureAttributeName

该属性的值是一个包含整数的 NSNumber 对象。连字导致使用与这些字符对应的单个自定义字形呈现特定的字符组合。值 0 表示没有连字。值 1 表示使用默认连字。值 2 表示使用所有连字。此属性的默认值为 1。(iOS 不支持值 2。)

于 2015-08-19T17:22:20.023 回答