我想创建一个应用程序,其中字体大小根据iOS设置中维护的字体大小增加或减少。如果您从设置更改iOS的字体大小,相应地显示whatsapp字体大小,我想要相同的功能。
您正在寻找的iOS功能是Dynamic Type
,仅适用于已实施text styles的文本。
基本上,你必须:
text styles
但请注意,它们的可用性取决于您的iOS版本.adjustsFontForContentSizeCategory
属性(自iOS 10起)或在代码中实现它,以便告诉系统自动处理它所属对象的动态类型(当然必须使用文本样式)。您还可以按照如下所示的Dynamic Type
events相关通知进行操作:此WWDC video detailed summary中的所有内容都得到了很好的解释,其中所有内容及其视频时间片都被指示可以快速获取信息。
还有adapting the graphical elements size的可能性以及动态类型实现。
如果要为标签使用动态类型,则需要做的所有操作。这意味着不要明确地设置它,而是使用像Header 1
或caption
这样的样式。此样式取决于“辅助功能”中的用户设置,并将自动更改。 https://www.raywenderlich.com/77092/text-kit-tutorial-swift
您可以使用文本的系统默认大小,例如,
self.label.font = [UIFont preferredFontForTextStyle:UIFontTextStyleHeadline];
请找文档here。
对于其他组件,您可以使用像labelFontSize()等等,
+ (CGFloat)labelFontSize;//Returns the standard font size used for labels.
+ (CGFloat)buttonFontSize;//Returns the standard font size used for buttons.
+ (CGFloat)smallSystemFontSize;//Returns the size of the standard small system font.
+ (CGFloat)systemFontSize;//Returns the size of the standard system font.