我有这个奇怪的问题,在iOS 7中,我的应用程序UIStatusBar
看起来像这样:
但是在iOS 6.1中,UIStatusBar
看起来像这样:
所以,我知道问题是什么,因为我要覆盖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
如何在不影响iOS6.1中的UIStatusBar
的情况下覆盖系统字体?
答案 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];