2017-05-03 169 views
0

我嘗試添加像這樣的leftbarbuttonitem: enter image description hereLeftBarButtonItem位置不正確

與此代碼:

let button = UIButton.init(type: .custom) 
     button.setImage(UIImage.init(named: "WhiteBackButton.png"), for: UIControlState.normal) 
     button.addTarget(self, action:#selector(self.backButtonSelected), for: UIControlEvents.touchUpInside) 
     button.frame = CGRect.init(x: 0, y: 0, width: 30, height: 30) 
     let barButton = UIBarButtonItem.init(customView: button) 
     self.navigationItem.leftBarButtonItem = barButton 

我使用這個圖片: enter image description here

,並將其發送看起來像這樣推倒:enter image description here

我如何阻止它從左邊推得太遠?

+0

它是一個真正的「後退」按鈕,就像你做了pushVC一樣,並且它想要做popVC,並且它有相同的顏色有標題(在你的屏幕截圖和其他可能的導航按鈕上不可見),沒有什麼更多了嗎?因爲如果是這樣的話,您可能只需將previousvc.title重命名爲'「」'就可以在推送該視圖控制器之前執行該操作。 – Larme

+0

請確保您使用的圖像沒有空白 – janusbalatbat

+0

我確實確認圖像沒有空白 – user1079052

回答

0

WhiteBackButton.png圖像最有可能在箭頭前/周圍有空白區域。

我建議還可以使用:

的UIBarButtonItem(圖片:風格:目標:行動:)代替的UIButton將簡化代碼...

https://developer.apple.com/reference/uikit/uibarbuttonitem/1617163-init

如果你正在改變barButtonItems很多可以用下面的功能擴展視圖控制器,並將它們添加到viewWillAppear中:

//should have a left and right of each: 
func addRightBarButtonWithImage(_ buttonImage: UIImage) { 
    let rightButton: UIBarButtonItem = UIBarButtonItem(image: buttonImage, style: UIBarButtonItemStyle.plain, target: self, action: #selector(self.toggleRight)) 
    navigationItem.rightBarButtonItem = rightButton 
} 


func setNavigationBarItem() { 
    self.addLeftBarButtonWithImage(UIImage(named: 「icon.png」)!) 
    self.addRightBarButtonWithImage(UIImage(named: 「icon.png」)!) 

} 

希望這有助於!乾杯!

2

設negativeSpacer:的UIBarButtonItem =的UIBarButtonItem(barButtonSystemItem:UIBarButtonSystemItem.fixedSpace,目標:無,動作:無) negativeSpacer.width = -10 self.navigationItem.leftBarButtonItems = [negativeSpacer,leftBarButton]