如何为 UILabel 设置“粗体”动态字体类型?

Posted

技术标签:

【中文标题】如何为 UILabel 设置“粗体”动态字体类型?【英文标题】:How to set a "bold" dynamic font type for UILabel? 【发布时间】:2020-07-24 10:12:36 【问题描述】:

Apple documentation says 表示对于 ios 应用程序可以使用文本样式和动态字体类型,因此文本大小会根据用户的阅读偏好自动调整。

我有一个文本样式 Body 并将 Dynamic Type 设置为 true 以便它自动调整文本大小。这很好用。

我也想让这个文本出现bold。我还没有找到如何通过代码或在 Interface Builder 中实现这一点的方法。

有没有办法实现“粗体动态字体类型”?

【问题讨论】:

您不能将粗体标记为Body,它是一种文本样式。使用系统/自定义字体选择 Bold Italic @omerfarukozturk 感谢您的评论。看来您为我指出了正确的方向,认为在我的情况下粗体字体可以被视为“自定义字体”。该文档显示了如何处理自定义字体。请参阅下面的答案。 【参考方案1】:

好的,documentation 似乎提供了一个提示。对于使用自定义字体,我现在考虑将bold 字体作为自定义字体,可以使用UIFontMetrics 类。

如果我将“粗体自定义字体”传递给 UIFontMetrics 类的 scaledFontForFont 方法,我会使用动态字体类型 UIFontTextStyleBody 获得所需的结果。

UIFont* boldSystemFont = [UIFont boldSystemFontOfSize:17];
myLabel.font           = [[UIFontMetrics metricsForTextStyle:UIFontTextStyleBody] scaledFontForFont:boldSystemFont];

到目前为止,我只看到这种使用代码的方式。不知道这是否也可以在 Interface Builder 中设置。

【讨论】:

以上是关于如何为 UILabel 设置“粗体”动态字体类型?的主要内容,如果未能解决你的问题,请参考以下文章

突出显示时将 UILabel 字体更改为粗体

在 iOS UILabel 上设置 BOLD 字体

iPhone/iPad的UILabel如何设置粗体和斜体?

IPhone UILabel中的粗体字体

IPhone UILabel中的粗体字体

C#中winform窗体,如何用代码设置字体的样式(如粗体、斜体)?