2017-03-04 89 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并执行一次。 –