如何为文本添加前导间距?

How do you add leading spacing to text?

我有一些要求,应用程序中的文本必须符合公司品牌规定。 特别是文本必须添加跟踪和前导值。 iOS 中不存在跟踪,但我在网上找到了一些将字体跟踪值转换为字体间距值的东西。

但是我找不到任何关于添加前导文本的信息。这是要求的引述:

".. 对于更大的尺寸(18pt 以上),我们还将字体点大小的 +2 值插入到前导"。还有 table 应用程序中使用的字体大小和用于前导的关联值(30、26、20、18、12)。

如何将这些前导值应用于文本?我试过搜索这个,但根本找不到。

我看到 here 上面写着

"NSStringDrawingUsesFontLeading - font leading basically means line spacing. This flag indicates the call to make use of default line spacing specified by the font."

它说行距和间距相同,但这让我感到困惑 - 暗示更改行距的唯一方法是设置间距,但这与间距相同但行距相同的要求相冲突根据字体点大小而变化。

我建议您创建一个 NSAttributedString 子class 或类别,其中添加了 NSString 属性 和字体大小 属性 (或者 enum 如果你想命名各种字体,例如 HeaderFont,......然后定义大小和可能的其他属性)。

在那个 NSString 属性 的 'set' 方法中,然后放置代码来设置各种属性。

通过这种方式,您可以隐藏所有这些讨厌的细节,将它们集中在一个中心位置,并最终得到一个非常简单的 class。

可能看起来像:

UILabel* someLabel;

someLabel.attributedText = [[MyAttributedString alloc] initWithText:"Hello" font:HeaderFont];

祝你好运!