更改导航栏标题的自定义嵌入字体的最简单方法是什么

时间:2013-08-03 19:32:42

标签: ios fonts uilabel uinavigationbar

我有超过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文件中的自定义字体。

申请上诉后,我得到了这个:

enter image description here

请注意,setFont根据this不适用于阿拉伯语Custome字体,所以我在下面使用UILabel:

NSAttributedString *attributedString = [[NSAttributedString alloc] initWithString:myLabel.text attributes:@{ NSFontAttributeName : myLabel.font, NSLigatureAttributeName: @1}];
myLabel.attributedText =   attributedString;

它工作正常(对于UILabel)。

3 个答案:

答案 0 :(得分:1)

尝试使用UIAppearance功能设置导航栏标题字体大小。

答案 1 :(得分:0)

您可以使用外观委托通过标题文本属性更改字体:

[[UINavigationBar appearance] setTitleTextAttributes:@{ UITextAttributeFont : [UIFont fontWithName:FONT_NAME_BOLD size:17] }];

答案 2 :(得分:0)

1.如果在代码中编辑您的项目,我有一个想法,通过继承一个已更改navigation bar图块font size的超级导航控制器。

2.如果您在storyboard中修改项目,则可以在.storyboard中搜索项目中的storyboard,以便轻松修改navigationbar以更改font 1}}。

我在下面为你拍了一张照片: three steps to edit your navigationbar in storyboard