如何更改导航项的字体?

Posted

技术标签:

【中文标题】如何更改导航项的字体?【英文标题】:How to change font of navigation items? 【发布时间】:2015-10-13 11:24:26 【问题描述】:

我的 NavigationBar 上有几个导航项(返回按钮、保存按钮)。 我尝试寻找相关的答案,但我找到了一个过时的答案或根本没有。

我在 navigationItem.leftBarButtonItem 上尝试了 setTitleTextAttributes 但没有奏效。

我设法更改了 NavigationBar 标题的字体,仅此而已。使用 self.navigationBar.titleTextAttribues,与导航项完成相同的方法但不起作用。

编辑:找到了解决方案,但我必须在每个视图控制器的 viewWillAppear 上添加它

let barBtn = UIBarButtonItem(title: "Test", style: UIBarButtonItemStyle.Bordered, target: self, action: "backButtonPressed")
barBtn.setTitleTextAttributes([NSFontAttributeName: UIFont(name: FONT_HERE, size: 12)!], forState: UIControlState.Normal)
self.navigationItem.setHidesBackButton(true, animated: false)
self.navigationItem.setLeftBarButtonItem(barBtn, animated: false)

然后在我调用 popViewControllerAnimated 的地方添加 backButtonPressed 函数。

各位,你们怎么看?有没有更简单的解决方案?

【问题讨论】:

How can I change the font of the back button for my navigation bar?的可能重复 关注了,没用。 你可以给self.navigationItem.titleView分配一个自定义标签 所有问题都集中在一处:***.com/a/28347428/469614 【参考方案1】:

我建议你使用外观协议:https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIAppearance_Protocol/index.html

这是我如何自定义导航栏外观的示例。

// 导航栏标题 [[UINavigationBar 外观] setTitleTextAttributes:@ NSFontAttributeName:[UIFont fontWithName:@"myfont" size:20.0f], NSForegroundColorAttributeName: [UIColor whiteColor] ];

// Navigation bar buttons and background
[UINavigationBar appearance].tintColor = [UIColor whiteColor];
[UINavigationBar appearance].barTintColor = [UIColor teal];
[UINavigationBar appearance].translucent = NO;

【讨论】:

UINavigationBar 没有成员 'setTitleTextAttributes'

以上是关于如何更改导航项的字体?的主要内容,如果未能解决你的问题,请参考以下文章

更改后退导航栏按钮的字体

如何更改 Android 菜单项的自定义字体?

如何更改组合框PyQt4中第一项的字体大小

更改 UINavigationController 标题的字体

如何在可能的导航控制器中更改条形按钮项的垂直位置和大小?

如何动态更改winforms列表框项的字体?