2017-07-16 82 views
0

我使用這個代碼來設置自定義圖像在UINavigationItemUINavigationItem圖像始終圍繞

let button = UIButton(type: .system) 
button.frame = CGRect(origin: .zero, size: CGSize(width: 34, height: 34)) 
button.setImage(image, for: .normal) 
button.addTarget(target, action: action, for: .touchUpInside) 
leftBarButtonItem = UIBarButtonItem(customView: button) 

影響看起來是這樣的:effect

在相同設備相比,屏幕截圖,但是從照片應用程序看起來是這樣的:

photos

正如你可以看到後退按鈕在我的應用程序移動一點點到中心。

爲什麼我的圖像與其他應用程序不一樣?

回答

2

嘗試設置一個UIView與您所需的寬度,然後添加UIButton的子視圖作爲該的UIView,然後才分配給leftbarbuttonItem

let button = UIButton(type: .system) 
    button.frame = CGRect(x: -20, y: 0, width: 35, height: 35) 
    button.backgroundColor = UIColor.blue 
    button.setImage(UIImage.init(named: "backButton"), for: .normal) 

    let view = UIView(frame: CGRect(origin: .zero, size: CGSize(width: 100, height: 35))); 
    view.addSubview(button); 
    view.backgroundColor = UIColor.yellow 

    let leftButton = UIBarButtonItem(customView: view) 
    self.navigationItem.leftBarButtonItem = leftButton 
+0

你可以共享任何代碼?因爲添加了這個:let view = UIView(frame:CGRect(origin:.zero,size:CGSize(width:34,height:34))); view.addSubview(button);不起作用。 – ThirdMartian

+0

你把圖像放在你的測試中了嗎?因爲它不適合我。 – ThirdMartian

+0

附加視圖+更改originX確實有幫助。 – ThirdMartian