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

时间:2016-09-23 03:28:38

标签: ios swift accessibility font-size whatsapp

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

3 个答案:

答案 0 :(得分:2)

您要查找的iOS功能是 Dynamic Type ,该功能仅适用于已实现text styles的文本。

基本上,您必须:

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

您还可以按照以下指示关注与Dynamic Type事件相关的通知:enter image description here WWDC video detailed summary中的所有内容都得到了很好的解释,其中指示了所有内容及其视频时移,以便快速获取信息。

使用动态类型实现也有adapting the graphical elements size的可能性。

答案 1 :(得分:0)

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

答案 2 :(得分: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.