如何在 iOS 7UILabel
中支持动态类型?UITextView
我正在为 iOS 7 调整我们的一个项目,并希望支持此辅助功能。我在 Apple 的 iOS 开发者网站上找不到具体的教程。
问问题
15028 次
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 回答