簡體   English   中英

如何更改導航控制器后退按鈕的字體大小

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM