有没有办法改变你的应用程序的默认字体

据我所知,所有的标准控件默认使用系统字体。

另外,API [UIFont systemFontOfSize:]也使用系统字体。

有没有办法为整个应用程序重新定义它,而不是设置表,标签等字体?

答案是否定的,你不能改变苹果的systemFont,你需要自己设置控制字体。

要为整个iOS应用程序设置默认字体的最佳方法,请检查以下问题:

设置整个iOS应用程序的默认字体?

如何在不指定大小的情况下为整个iOS应用程序设置自定义字体

如何为整个应用程序设置自定义字体?

有一个简单的方法来设置整个应用程序的默认字体?

定义和导出(通过在文件或预编译头文件中包含头文件)一个UIFont类别,如下所示:

 @implementation UIFont (Utils) #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wobjc-protocol-method-implementation" + (UIFont *)systemFontOfSize:(CGFloat)size { return [UIFont fontWithName:@"YOUR_TRUETYPE_FONT_NAME_HERE" size:size]; } + (UIFont *)lightSystemFontOfSize:(CGFloat)size { return [UIFont fontWithName:@"YOUR_TRUETYPE_FONT_NAME_HERE" size:size]; } + (UIFont *)boldSystemFontOfSize:(CGFloat)size { return [UIFont fontWithName:@"YOUR_TRUETYPE_FONT_NAME_HERE" size:size]; } + (UIFont *)preferredFontForTextStyle:(NSString *)style { if ([style isEqualToString:UIFontTextStyleBody]) return [UIFont systemFontOfSize:17]; if ([style isEqualToString:UIFontTextStyleHeadline]) return [UIFont boldSystemFontOfSize:17]; if ([style isEqualToString:UIFontTextStyleSubheadline]) return [UIFont systemFontOfSize:15]; if ([style isEqualToString:UIFontTextStyleFootnote]) return [UIFont systemFontOfSize:13]; if ([style isEqualToString:UIFontTextStyleCaption1]) return [UIFont systemFontOfSize:12]; if ([style isEqualToString:UIFontTextStyleCaption2]) return [UIFont systemFontOfSize:11]; return [UIFont systemFontOfSize:17]; } #pragma clang diagnostic pop @end 

从iOS 7开始,轻量级变体是一个有用的额外function。享受! ;)