我有超过20 UINavigationBars
需要更改其标题的字体,并根据我看到的所有教程,有一种方法可以更改条UILabel
,所以我使用下面的代码:
+ (void) applyFontForUINavigationItem:(UINavigationItem *)navItem withTitle:(NSString *) title{
UILabel *navLabel = [Util generateNabBarLabel withText:title];
[navLabel setFontName:FONT_NAME_BOLD];
navItem.titleView = navLabel;
}
它工作正常,但我不想在我的所有ViewControllerss
'viewDidLoad
中添加这个奇数行,即使使用子类化,还有合法的方法吗?
修改: 我使用与here相同的ttf文件中的自定义字体。
申请上诉后,我得到了这个:
请注意,setFont
根据this不适用于阿拉伯语Custome字体,所以我在下面使用UILabel:
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithString:myLabel.text attributes:@{ NSFontAttributeName : myLabel.font, NSLigatureAttributeName: @1}];
myLabel.attributedText = attributedString;
它工作正常(对于UILabel)。
答案 0 :(得分:1)
尝试使用UIAppearance功能设置导航栏标题字体大小。
答案 1 :(得分:0)
您可以使用外观委托通过标题文本属性更改字体:
[[UINavigationBar appearance] setTitleTextAttributes:@{ UITextAttributeFont : [UIFont fontWithName:FONT_NAME_BOLD size:17] }];
答案 2 :(得分:0)