我有 20 多个UINavigationBars
需要更改标题的字体,根据我看到的所有教程,有一种方法可以做到这一点,即更改 bar UILabel
,所以我使用了以下代码:
+ (void) applyFontForUINavigationItem:(UINavigationItem *)navItem withTitle:(NSString *) title{
UILabel *navLabel = [Util generateNabBarLabel withText:title];
[navLabel setFontName:FONT_NAME_BOLD];
navItem.titleView = navLabel;
}
它工作正常,但我不想在我所有的ViewControllerss
'中添加这条奇怪的行,viewDidLoad
即使使用子类化,是否有合法的方法来做到这一点?
编辑:我正在使用与此处相同的 ttf 文件中的自定义字体。
在应用外观后,我得到了这个:
请注意,这setFont
不适用于阿拉伯自定义字体,因此我在下面为 UILabel 使用:
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithString:myLabel.text attributes:@{ NSFontAttributeName : myLabel.font, NSLigatureAttributeName: @1}];
myLabel.attributedText = attributedString;
它工作正常(对于 UILabel)。