2017-03-04 121 views
1

我想居中兩個導航項目,以便它們與導航欄標題視圖垂直對齊。如何居中導航欄的導航項目?

enter image description here

這是相當簡單的居中導航控制器的導航欄標題視圖(該代碼屬於導航控制器自定義類):

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.navigationBar.setTitleVerticalPositionAdjustment(-8, for: .default) 
} 

但這代碼不居中導航項目:

let menuButton = UIBarButtonItem(image: #imageLiteral(resourceName: "menu"), style: .plain, target: self, action: #selector(handleLogout)) 
menuButton.tintColor = UIColor(r: 149, g: 156, b: 151) 
self.navigationItem.leftBarButtonItem = menuButton 

UIButtonItem都不具備的框架性質,我也可以使用自動佈局。我怎樣才能集中我的導航項目?

+0

劈:http://stackoverflow.com/questions/39931976/how-to-get-uibarbuttonitem-center-position – shallowThought

回答

1

您是否嘗試過使用UIBarButtonItem.appearance().setTitlePositionAdjustment? 也可以嘗試使用按鈕的imageInsets屬性。

+0

謝謝。這個代碼(定位在自定義導航控制器的viewDidLoad()下面)當前不會改變按鈕項的垂直位置:UIBarButtonItem.appearance()。setTitlePositionAdjustment(UIOffset(horizo​​ntal:0,vertical:-8),for:默認)' – Cesare

+1

'menuButton.imageInsets = UIEdgeInsets(top:0,left:0,bottom:12,right:0)'DID work,但我認爲設置每個bar按鈕項的imageInsets屬性有點繁瑣我的應用程序... – Cesare

+0

@ces您可以繼承UIBarButtonItem並執行一次。 –