具有不同字体粗细的动态文本样式

时间:2020-04-18 00:18:45

标签: ios swift

static func preferredFont(forTextStyle style: TextStyle, weight: Weight) -> UIFont {
      let metrics = UIFontMetrics(forTextStyle: style)
      let desc = UIFontDescriptor.preferredFontDescriptor(withTextStyle: style)
      let font = UIFont.systemFont(ofSize: desc.pointSize, weight: weight)
      return metrics.scaledFont(for: font)
  }

当已经加载UILabel并在iOS设置中更改了文本大小时,此函数可以正确更改pointSize,但是一旦重新加载UILabel,pointSize就会缩放为其他值(通常是较大的值)。 有人经历过吗? 还有其他方法可以用不同的权重来修改preferredFontTextStyle吗?

例如,我将文本大小更改为AX3

图像1:已经在此视图上,pointSize的“ body”样式正确更改为40。

图片2:转到上一个屏幕并返回,pointSize增加了很多。

Image 1 Image 2

0 个答案:

没有答案