[英]Change the font on the back button of a navigation controller under swift 4
[英]How to change font size of Navigation controller back button
我試圖將導航控制器后退按鈕的字體大小更改為無效。
我目前正在以前的視圖控制器viewWillAppear
執行此操作:
navigationController?.navigationBar.backItem?.backBarButtonItem?.setTitleTextAttributes(
[NSAttributedStringKey.font : UIFont.systemFont(ofSize: 5)], for: .normal)
上面的代碼什么都不做。。所以,有兩個問題。
首先,什么是更改后退按鈕字體大小的正確方法(順便說一句,這似乎比應做的要困難得多)。
其次,是否可以在單個位置(如AppDelegate)進行此更改,以使其影響所有視圖控制器?
您可以在AppDelegate中更改它:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
UIBarButtonItem.appearance().setTitleTextAttributes([NSAttributedStringKey.font: UIFont(name: "SF Pro Display", size: 17)!], for: .normal)
return true
}
您可以在其中自定義導航欄按鈕的字體和大小,以便在所有View Controller中對其進行更改。
我將使用UIAppearance協議來實現這一點。
首先,什么是更改后退按鈕字體大小的正確方法(順便說一句,這似乎比應做的要困難得多)。
這取決於用例。 如果只有一個導航欄,則可以通過執行以下操作來更改其后退按鈕屬性。
navigationItem.leftBarButtonItem?.setTitleTextAttributes
但是如果我想自己做一個自定義按鈕,那么我只是在這里添加一個新按鈕。
其次,是否可以在單個位置(如AppDelegate)進行此更改,以使其影響所有視圖控制器?
如果您要更改整個條形按鈕的外觀,
UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: customFont], for: .normal)
我不會這樣做。 從長遠來看,它將無法擴展。 您最終肯定會擁有更多的導航屏幕,並且您不希望它們具有相同的外觀,然后這將是一個更大的重構!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.