2016-10-19 71 views
0

我有下面的代碼,它在將我的應用程序更新到Swift3之前曾經工作過。在iOS 10中更改UIBarButtonItem字體

let barButtonsAppearanceDictionary: [String : AnyObject] = [NSFontAttributeName : UIFont.tangraText(withSize: 17)!, 
                   NSForegroundColorAttributeName : UIColor.tangraBlue()] 
    UIBarButtonItem.appearance().setTitleTextAttributes(barButtonsAppearanceDictionary, for: UIControlState()) 
    let barButtonsDisabledAppearanceDictionary: [String : AnyObject] = [NSFontAttributeName : UIFont.tangraText(withSize: 17)!, 
                     NSForegroundColorAttributeName : UIColor.lightGray] 
    UIBarButtonItem.appearance().setTitleTextAttributes(barButtonsDisabledAppearanceDictionary, for: .disabled) 

    UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName : UIColor.tangraBlue(), 
                 NSFontAttributeName : UIFont.tangraText(withSize: 22)!] 
    UINavigationBar.appearance().tintColor = UIColor.tangraBlue() 

它應該改變導航欄項目的字體和顏色,但它不工作了。問題不在於字體,因爲它在整個應用程序中都顯示正確。有任何想法嗎?

+0

您的代碼適用於xcode 8中的我。我能夠看到ui barbutton的文本顏色更改。 –

+0

代碼updated.take ... – Joe

+0

@NaveenRamanathan奇怪。您是否使用自定義字體進行嘗試? – smeshko

回答

0

試試這個代碼:在Xcode 8測試:

在viewDidLoad中:

navigationController?.toolbar.setBackgroundImage(UIImage(), forToolbarPosition: UIBarPosition.any, barMetrics: UIBarMetrics.default) 
    navigationController?.toolbar.barStyle = UIBarStyle.default 
    navigationController?.toolbar.tintColor = UIColor.red 
    navigationController?.toolbar.backgroundColor = UIColor.green 

更新:

的AppDelegate:從自定義代碼

UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: UIFont(name: "Villa", size: 25.0)!], for: UIControlState.normal) 

輸出字體:

enter image description here

+0

正如你可以在我的代碼中看到的,我試圖改變所有'UIBarButtonItem'的外觀,所以我沒有訪問具體參考。 – smeshko

+0

@smeshko是你想要什麼...乾杯 – Joe

+0

@smeshko好吧,我會看到。謝謝你讓我知道... – Joe