首页 > 解决方案 > UILabel 的默认字距是多少(属性文本看起来不同)

问题描述

我不确定我是否遗漏了一些明显的东西,但我环顾四周,找不到答案。

基本上,尽管这个问题说了什么,但 UILabel 纯文本和属性文本看起来不同。例如,下面的两个标签都是系统字体 15pt,黑色的使用属性文本,灰色的使用纯文本。显然黑色的比灰色的宽。

在此处输入图像描述

我知道我可以在属性文本上设置字距以调整其外观。我的问题是,我应该设置什么值才能使其看起来与 Apple 的默认值相同?有没有办法让我“将字距调整值保留为默认值”?

谢谢!

标签: iosuikituilabelnsattributedstring

解决方案


根据UILabel 属性文本属性的文档

要在标签上打开自动字距调整,请将字符串的 kern 设置为 null。

看起来纯文本的自动字距调整默认情况下是打开的,属性文本默认情况下是关闭的。以下是如何为属性文本属性重新启用自动字距调整:

        let label = UILabel()
        let attributes = [NSAttributedString.Key.kern: kCFNull!]
        label.attributedText = NSMutableAttributedString(string: "Text", attributes: attributes)

推荐阅读