如何从具有图像的自定义栏按钮项目中删除右 padding/margin/space?

How to remove right padding/margin/space from a custom bar button item which has an image?

在过去的两天里,我一直在努力寻找解决这个问题的方法,但我尝试过的任何方法都对我不起作用。我尝试过的一些解决方案要么拉伸要么完全弄乱我的自定义图像,但没有任何方法可以删除正确的填充。下面是我的代码以及结果。请注意右侧栏按钮的 space 比左侧系统按钮大。

    var saveButton: UIButton = UIButton(frame: CGRectMake(0, 0, 32, 32))
    saveButton.addTarget(self, action: "saveAction:", forControlEvents: .TouchUpInside)

    let img = UIImage(named: "save")
    saveButton.setBackgroundImage(img, forState: .Normal)
    var saveBarButton: UIBarButtonItem = UIBarButtonItem(customView: saveButton)
    self.navigationItem.setRightBarButtonItem(saveBarButton, animated: false)

好的伙计们,我找到了一个非常适合我的解决方案。我没有在代码中创建和设置条形按钮项目,而是在情节提要中添加了一个,并将其在大小检查器中的左边距设置为 -6(或您喜欢的任何值),并将右边距设置为 6(同样是您喜欢的任何值 注意两个值必须是相同的值,但一个为正,另一个为负)。然后我将它的图像设置为我在属性检查器中想要的图像。如果出于某种原因您想更改代码中的图像,您可以这样做:

barButtonOutlet.image = UIIMage(named: "yourImage") as UIImage?

希望这对你们中的一些人有所帮助。

这是我的解决方案。试试..

rightBtn.imageInsets = UIEdgeInsets(top: 0, left: -13.0, bottom: 0, right: 13.0)
self.navigationItem.rightBarButtonItem = rightBtn