2017-07-16 58 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