为什么在使用属性字符串时需要设置preferredFont(forTextStyle :)?

时间:2017-09-19 14:23:38

标签: ios swift uikit accessibility dynamic-text

我有一个标签,我想设置为具有自定义行高的文本。我也想使用动态类型。

以下是我设置标签的方式:

let attributedString = NSMutableAttributedString(string: "A long string with lots of lines")
attributedString.addAttribute(NSParagraphStyleAttributeName,
                              value: NSMutableParagraphStyle(minimumLineHeight: 28),
                              range: NSRange(location: 0, length: attributedString.length))
myLabel.attributedText = attributedString

如果我使用辅助功能检查器,它将不会调整大小,除非我在它下面添加这一行:

myLabel.font = UIFont.preferredFont(forTextStyle: .body)

在故事板中,标签设置为使用文本样式,零线,自动换行等等...这仅在使用属性字符串时才会发生。

这是一个苹果虫吗?

1 个答案:

答案 0 :(得分:0)

因为在创建该属性字符串时没有指定字体大小的属性。

当您设置字体属性时,您将其应用于整个文本的范围: 如果所有属性文本的大小相同,为什么不呢?

不,这不是苹果虫