如何动态更改iOS系统字体但记住原始字体?

时间:2015-07-13 17:02:21

标签: ios objective-c ios7 uifont objective-c-category

我可以动态更改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];
}

0 个答案:

没有答案