我可以动态更改iOS应用的语言,而无需终止应用。但是,我想要动态更改系统字体,因为标准的Helvetica Neue字体在某些语言中看起来不太好。我将使用this SO answer中的类别并将其包含在我的.pch
:
@implementation UIFont (SytemFontOverride)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wobjc-protocol-method-implementation"
+ (UIFont *)systemFontOfSize:(CGFloat)fontSize {
return [UIFont fontWithName:@"FONT NAME" size:fontSize];
}
#pragma clang diagnostic pop
@end
但是,当我使用英语时,我想使用默认系统字体,这些字体与iOS版本和设备略有不同。 我的问题是如何实现这样的目标
static UIFont *defaultRegularFont = [UIFont systemFontOfSize:12];
所以当应用程序像这样切换回英语时,我可以重复使用它
+ (UIFont *)systemFontOfSize:(CGFloat)fontSize {
...
// If English
return [UIFont fontWithName:[defaultRegularFont fontName] size:fontSize];
}