可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
How do I change the NavigationBar font in Swift?
This is what I have tried so far, but receiving an error (I have correctly implemented CaviarDreams to the project):
self.navigationController.navigationBar.titleTextAttributes = NSFontAttributeName[UIFont .fontWithName(CaviarDreams.ttf, size: 20)]
Error says: Use of unresolved identifier 'CaviarDreams
Sorry if the question is extremely bad.
回答1:
Try this:
self.navigationController.navigationBar.titleTextAttributes = [ NSFontAttributeName: UIFont(name: "CaviarDreams", size: 20)!]
Edit: Now, UIFont must be unwrapped to be able to be used here.
回答2:
Using Swift, I added this to AppDelegate.swift
in
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
UINavigationBar.appearance().titleTextAttributes = [
NSFontAttributeName: UIFont(name: "DINNextLTW04-Regular", size: 20)!
]
return true
}
Hope it helps!
回答3:
Swift 2.0:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
UINavigationBar.appearance().titleTextAttributes = [
NSFontAttributeName: UIFont(name: "Arial-Regular", size: 30)!
]
return true
}
Or
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.navigationBarHidden = false
self.title = "SAMPLE"
//Set Color
let attributes: AnyObject = [ NSForegroundColorAttributeName: UIColor.redColor()]
self.navigationController!.navigationBar.titleTextAttributes = attributes as? [String : AnyObject]
//Set Font Size
self.navigationController!.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "Arial", size: 37.0)!];
}
回答4:
Now you have to unwrap (!) it first so its not of type UIFont?
:
self.navigationController.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "<font-name>", size: <size>)!]
回答5:
For Swift 2.3
self.navigationController!.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "Roboto-Bold", size: 20.0)!, NSForegroundColorAttributeName : UIColor.whiteColor()];
回答6:
Swift 4
if let font = UIFont(name: "FontName", size: 16) {
self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.font: font]
}
Or as the other answer recommended doing it on the AppDelegate:
if let font = UIFont(name: "FontName", size: 16) {
UINavigationBar.appearance().titleTextAttributes = [
NSAttributedStringKey.font: font]
}
回答7:
Swift 4.2
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
let font = UIFont(name: "FontName", size: 16) ?? UIFont.systemFont(ofSize: 16)
UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.font: font]
}
回答8:
Swift 4.2
self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.font: UIFont(name: "Helvetica", size: 18.0)!]