【问题标题】:What's the default kerning for UILabel (attributed text looks different)UILabel 的默认字距是多少(属性文本看起来不同)
【发布时间】:2019-07-08 01:48:21
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

    标签: ios uikit uilabel nsattributedstring


    【解决方案1】:

    根据 UILabel 属性文本属性的documentation

    要打开标签的自动紧缩,请将字符串的紧缩设置为 null。

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

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

    【讨论】:

    • 我已经尝试过了,但似乎没有用。我所做的是string.addAttribute(.kern, value: kCFNull!, range: NSMakeRange(0, string.length))
    • 我在答案中添加了一些示例代码,据我所知,它似乎将字距设置为“自动”。我希望它有所帮助。
    • 进展如何?现在文本和属性文本匹配吗?很高兴看到有人为印刷细节出汗;-)
    猜你喜欢
    • 2012-05-15
    • 1970-01-01
    • 2015-06-12
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多