删除导航项右键提示中按钮之间的间隙

时间:2013-07-04 16:42:51

标签: ios objective-c

我正在使用self.navigationItem.rightBarButtonItems来设置导航栏项目。但是,对于条形按钮,我使用的是自定义视图(按钮)。我观察到按钮之间有间距。我该如何删除?

4 个答案:

答案 0 :(得分:13)

我知道为时已晚,但我使用UIBarButtonItem的以下方法解决了 使用

[barbuttonitem setImageInsets:UIEdgeInsetsMake(0, -30, 0, -70)];

答案 1 :(得分:4)

我通过使用storybord界面解决了这个问题。我知道你使用的是自定义栏,但这个答案对于那些使用stroybord的人很有用。

1.选择Bar item

2.选择Size Inspector

在这里,您可以使用topbottomleftright找到图片插件,您可以更改条形图的位置。

答案 2 :(得分:3)

您无法将其删除。您可以通过创建带有自定义视图的条形按钮项来解决此问题,其中该自定义视图将自定义按钮全部添加为子视图。通过这种方式,您可以直接控制精确定位。

答案 3 :(得分:1)

以下是如何解决此问题的示例:

创建UIBarButton

的扩展名
extension UIBarButtonItem
{
    /** Create custom right bar button for reduce space between right bar buttons */ 
    func initRightButton(let imageNamed:String, let target:UIViewController, let selector:Selector) -> UIBarButtonItem {  
        let frame = CGRectMake(0, 0, 30, 30)
        //Create imageView
        let imageView = UIImageView(frame:frame)
        imageView.image = UIImage(named: imageNamed)
        //Create Button
        let button = UIButton(frame: frame)
        button.addTarget(target, action: selector, forControlEvents: .TouchUpInside)
        //Create View and add imageView and Button
        let view = UIView(frame: frame)
        view.addSubview(imageView)
        view.addSubview(button)
        return UIBarButtonItem(customView: view)
    }
}

在类控制器中使用方法customizeNavigationBar

func customizeNavigationBar()  {
    //Create custom right bar button chat for reduce space between right bar buttons
    let barButton1 = UIBarButtonItem().initRightButton("customImageNamed1", target: self, selector: customSelector)
    let barButton2 = UIBarButtonItem().initRightButton("customImageNamed2", target: self, selector: customSelector)
    self.navigationItem.rightBarButtonItems = [barButton1,barButton2]
}