在 Swift 中更改 UINavigationBar 字体

Posted

技术标签:

【中文标题】在 Swift 中更改 UINavigationBar 字体【英文标题】:Changing UINavigationBar font in Swift 【发布时间】:2014-08-24 22:17:14 【问题描述】:

我有一个UINavigationBar,中间有一个标题。我已在我的应用程序中添加了自定义字体 ("Comic_Andy.ttf")(我已检查 info.plist 以确保它已列出,并且我已检查 Copy Bundle Resources 以确保已添加它),我想要以该字体显示的UINavigationBar 的标题。据我所知,我似乎应该在我的ViewController 中使用它:

myNavigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "Comic_Andy", size: 22)]

我将该方法放在ViewControllerviewDidLoad 函数中。 我也在AppDelegatedidFinishLaunchingWithOptions函数中试过这个:

UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName: UIFont(name: "Comic_Andy", size: 22)]

我在 XCode 6 Beta 6 中使用 Swift 进行编程。有关此任务的许多资源都提到了使用一种名为 setTitleTextAttributes 的方法,但该方法无处可见。我这辈子都想不通——我现在可能已经花了将近 3 个小时了——我已经检查了每个 *** 答案,每个网站,所以请不要将其标记为重复。 非常感谢!

【问题讨论】:

【参考方案1】:

尝试使用 ViewController viewDidLoad 函数中的 navigationController.navigationBar,而不是使用 myNavigationBar。它对我有用。

navigationController.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "Comic_Andy", size: 22)]

如果这不起作用,请尝试使用 .ttf 后缀。

navigationController.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "Comic_Andy.ttf", size: 22)]

祝你好运!

【讨论】:

您应该将此作为答案发布。【参考方案2】:

也可以为所有带有UINavigationBar.appearance() 的 NavigationBars 完成。

UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName: UIFont(name: Font.mediumFontName, size: 20)!]

【讨论】:

【参考方案3】:

好吧,我花了一整天的时间,但我明白了。我的第一个问题是我什至没有 NavigationController,所以一旦我解决了所有问题this is what finally fixed it。原来你这样称呼字体:Comic Andy 而不是Comic_Andy。即使字体在整个包中都被称为 Comic_Andy,并且文件名为 Comic_Andy,您仍然使用 Comic Andy。

【讨论】:

字体名和文件名不一样!我去过那里

以上是关于在 Swift 中更改 UINavigationBar 字体的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中更改导航栏颜色

在 Swift 中更改类型

如何在 Swift 中更改字母间距?

NSTextField,在 Swift 中更改文本

在 Swift 中更改导航栏颜色

在 Swift 中更改 UITextView 的 textColor