2014-01-19 3 views
1

У меня этот странный вопрос, в прошивке 7 мое приложение UIStatusBar выглядит следующим образом:состояние изменение бара шрифты в прошивкой 6.1

ios7 status bar

Но прошивка 6.1 UIStatusBar выглядит следующим образом:

enter image description here

Так, я знаю, что это проблема, это потому, что я переопределение systemFontOfSize и boldSystemFontOfSize:

#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 

Как я могу переопределить системный шрифт без эффекта UIStatusBar в iOS6.1?

ответ

2

Нет Нет Нет!

Не используйте такую ​​категорию, она имеет непредвиденное поведение, вы всегда должны проставлять свои методы категорий.

например.

@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]; 
+0

информация по категориям и collisons: http://cocoamanifest.net/articles/2011/06/clash-of-the-categories.html –

+0

Да, это, вероятно, что я буду делать. Я хотел знать, есть ли способ исправить это и заставить его оставаться таким. –