0

我有 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)。

4

3 回答 3

1

尝试使用 UIAppearance 功能来设置导航栏磁贴的字体大小。

于 2013-08-03T19:40:04.593 回答
0

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

[[UINavigationBar appearance] setTitleTextAttributes:@{ UITextAttributeFont : [UIFont fontWithName:FONT_NAME_BOLD size:17] }];
于 2013-08-03T19:37:47.663 回答
0

1.如果在代码中编辑您的项目,我有一个想法,即继承一个更改了navigation bar磁贴的超级导航控制器font size

2.如果您在 中编辑您的项目storyboard,您可以.storyboard在您的项目中搜索,在storyboard您可以轻松编辑navigationbar以更改font.

我在下面为你拍了一张照片: 在故事板中编辑导航栏的三个步骤

于 2016-06-25T03:41:41.903 回答