ios - UILabel 的默认字距是多少(属性文本看起来不同)
问题描述
我不确定我是否遗漏了一些明显的东西,但我环顾四周,找不到答案。
基本上,尽管这个问题说了什么,但 UILabel 纯文本和属性文本看起来不同。例如,下面的两个标签都是系统字体 15pt,黑色的使用属性文本,灰色的使用纯文本。显然黑色的比灰色的宽。
我知道我可以在属性文本上设置字距以调整其外观。我的问题是,我应该设置什么值才能使其看起来与 Apple 的默认值相同?有没有办法让我“将字距调整值保留为默认值”?
谢谢!
解决方案
根据UILabel 属性文本属性的文档
要在标签上打开自动字距调整,请将字符串的 kern 设置为 null。
看起来纯文本的自动字距调整默认情况下是打开的,属性文本默认情况下是关闭的。以下是如何为属性文本属性重新启用自动字距调整:
let label = UILabel()
let attributes = [NSAttributedString.Key.kern: kCFNull!]
label.attributedText = NSMutableAttributedString(string: "Text", attributes: attributes)
推荐阅读
- c# - 为什么在添加全局授权过滤器时会调用两次授权处理程序?
- node.js - 常驻内存大于 --max-old-space-size 阈值?
- reactjs - react router中使用history.push()时需要刷新的问题
- r - 使用 ggplot 绘制线并拟合线性回归线
- gpu - Jupyter 内核在加载图像进行训练时死机?如何保持纵横比不变?
- python - 在动态优化问题中实现不确定性
- c# - 在关闭时将触发器/事件从插件传递到主应用程序
- python-3.x - Python交互模式:不使用返回值调用next不推进迭代器
- ios - React Native iOS Universal Links - 错误无法获取应用程序站点关联
- python - 如何从另一个框架创建一个新的数据框,列表作为原始df中的列?