在Swift中更改导航栏中的字体

时间:2014-10-28 10:20:22

标签: ios swift fonts uinavigationbar

我想更改导航栏中的字体。但是,以下代码不起作用,它会导致应用程序崩溃。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName: UIFont(name: "Lato-Light.ttf", size: 34)!]

     return true
}

我收到以下错误:

致命错误:unexpectedly found nil while unwrapping an Optional value(lldb)

我确实已将字体 Lato-Light.ttf 添加到我的项目中,因此它应该能够找到它。

2 个答案:

答案 0 :(得分:17)

UIFont()是一个可用的初始化者,可能由于多种原因而失败。使用!进行强制解包会导致您的应用崩溃。

更好地单独初始化并检查是否成功:

if let font = UIFont(name: "Lato-Light.ttf", size: 34) {
    UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName: font]
}

并检查您的字体文件是否包含在捆绑资源中。

Common Mistakes With Adding Custom Fonts to Your iOS App

答案 1 :(得分:2)

foreach (var edge in distinctEdge)
{
    edge.value = EdgeList.Count(e => e.target == edge.target && e.source == edge.source);
}