33

如何在 iOS 7UILabel中支持动态类型?UITextView我正在为 iOS 7 调整我们的一个项目,并希望支持此辅助功能。我在 Apple 的 iOS 开发者网站上找不到具体的教程。

4

2 回答 2

57

如果你使用新UIFont方法,那么你就差不多了——你只需要添加观察者来监听变化。

在设置标签样式时,您应该使用 和 相关的方法,而不是设置特定的字体大小preferredFontForTextStyle:(如果您使用的是 Interface Builder,您可以直接在检查器中选择样式)。例如:

self.label.font = [UIFont preferredFontForTextStyle:UIFontTextStyleHeadline];

完成后,您应该收听UIContentSizeCategoryDidChangeNotification. 当您收到此通知时,您应该对标签进行布局以支持新选择的大小(如果您使用自动布局,这通常就像发送invalidateIntrinsicContentSize到您的视图一样简单)。

如果您正在寻找官方文档,请查看Text Programming Guide

于 2013-09-30T11:00:33.967 回答
2

在 Swift 3 和 iOS 10 中,您可以使用

headline.font = UIFont.preferredFont(forTextStyle: UIFontTextStyleHeadline)
headline.adjustsFontForContentSizeCategory = true

有关更多信息,请参阅这篇出色的帖子,尤其是如何支持 iOS 10 之前的版本。

于 2017-02-02T01:12:18.113 回答