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

时间:2020-07-24 10:12:36

标签: ios uilabel

对于iOS应用而言,Apple documentation says可以使用文本样式和动态字体类型,因此文本大小会自动根据用户的阅读偏好进行调整。

我的文字样式为Body,并将Dynamic Type设置为true,以便自动调整文字大小。效果很好。

我也想使此文本显示为bold。我还没有找到一种方法来通过代码或在Interface Builder中实现这一目标。

有没有一种方法可以实现“大胆的动态字体类型”?

1 个答案:

答案 0 :(得分:0)

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

如果将“粗体自定义字体”传递给UIFontMetrics类的scaledFontForFont方法,我将获得具有动态字体类型UIFontTextStyleBody的期望结果。

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

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