如何从具有图像的自定义栏按钮项目中删除右边距/边距/空格?

时间:2015-09-16 16:14:46

标签: ios swift uinavigationbar uibarbuttonitem

过去两天我一直试图找到解决这个问题的方法,但我尝试的对我来说仍然没有。我试过的一些解决方案要么拉伸要么完全弄乱我的自定义图像,但没有任何东西会删除正确的填充。这是我的代码以及结果。注意右边的条形按钮比左边的系统按钮有更大的空间。

enter image description here

    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)

2 个答案:

答案 0 :(得分:2)

好吧,伙计们,我找到了一个适合我的解决方案。我没有在代码中创建和设置条形按钮项,而是在故事板中添加了一个,并将它在尺寸检查器中的左边距设置为-6(或任何你喜欢的值),它的右边距为6(再次您喜欢的任何值 请注意,这两个值必须相同,但一个是正数,另一个是负数 )。然后我将它的图像设置为属性检查器中所需的图像。如果由于某种原因你想在代码中更改图像,你可以这样做:

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

希望这有助于你们中的一些人。

答案 1 :(得分:0)

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

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