如何为 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 设置“粗体”动态字体类型?的主要内容,如果未能解决你的问题,请参考以下文章