如何获取iOS字体大小并将其设置为应用程序的所有标签?

问题描述 投票:4回答:3

我想创建一个应用程序,其中字体大小根据iOS设置中维护的字体大小增加或减少。如果您从设置更改iOS的字体大小,相应地显示whatsapp字体大小,我想要相同的功能。

ios swift accessibility font-size whatsapp
3个回答
2
投票

您正在寻找的iOS功能是Dynamic Type,仅适用于已实施text styles的文本。

基本上,你必须:

  • 使用text styles但请注意,它们的可用性取决于您的iOS版本.enter image description here
  • 在界面构建器中勾选adjustsFontForContentSizeCategory属性(自iOS 10起)或在代码中实现它,以便告诉系统自动处理它所属对象的动态类型(当然必须使用文本样式)。
  • 使您的所有约束适应您的应用可能遇到的不同大小。

您还可以按照如下所示的Dynamic Typeevents相关通知进行操作:enter image description hereWWDC video detailed summary中的所有内容都得到了很好的解释,其中所有内容及其视频时间片都被指示可以快速获取信息。

还有adapting the graphical elements size的可能性以及动态类型实现。


0
投票

如果要为标签使用动态类型,则需要做的所有操作。这意味着不要明确地设置它,而是使用像Header 1caption这样的样式。此样式取决于“辅助功能”中的用户设置,并将自动更改。 https://www.raywenderlich.com/77092/text-kit-tutorial-swift


0
投票

您可以使用文本的系统默认大小,例如,

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.
© www.soinside.com 2019 - 2024. All rights reserved.