iOS 6.1中的状态栏字体更改

时间:2014-01-19 16:00:45

标签: ios iphone objective-c uifont uistatusbar

我有这个奇怪的问题,在iOS 7中,我的应用程序UIStatusBar看起来像这样:

ios7 status bar

但是在iOS 6.1中,UIStatusBar看起来像这样:

enter image description here

所以,我知道问题是什么,因为我要覆盖systemFontOfSizeboldSystemFontOfSize

#import "UIFont+SytemFontOverride.h"

@implementation UIFont (SystemFontOverride)

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wobjc-protocol-method-implementation"

+ (UIFont *)boldSystemFontOfSize:(CGFloat)fontSize;
{
    return [UIFont fontWithName:@"ArialHebrew-Bold" size:fontSize];
}

+ (UIFont *)systemFontOfSize:(CGFloat)fontSize
{
    return [UIFont fontWithName:@"Arial" size:fontSize];
}

#pragma clang diagnostic pop

@end

如何在不影响iOS6.1中的UIStatusBar的情况下覆盖系统字体?

1 个答案:

答案 0 :(得分:2)

否否否

不要使用类似的类别,它有意想不到的行为,你应该总是命名你的类别方法。

e.g。

@implementation UIFont (OKASystemFontOverride)

+ (UIFont *)oka_boldSystemFontOfSize:(CGFloat)fontSize;
{
    return [UIFont fontWithName:@"ArialHebrew-Bold" size:fontSize];
}

+ (UIFont *)oka_systemFontOfSize:(CGFloat)fontSize;
{
    return [UIFont fontWithName:@"Arial" size:fontSize];
}

@end

然后,您必须在您拥有的任何标签上明确设置字体。

myLabel.font = [UIFont oka_systemFontOfSize:17.f];