6

self.navigationItem.rightBarButtonItems用来设置我的导航栏项目。但是,对于条形按钮,我使用的是自定义视图(按钮)。我观察到按钮之间有间距。我怎样才能删除这个?

4

4 回答 4

13

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

[barbuttonitem setImageInsets:UIEdgeInsetsMake(0, -30, 0, -70)];
于 2014-08-11T12:09:14.257 回答
4

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

1.选择Bar item.

2.选择Size Inspector.

在这里您可以找到图片 Inset,使用top, bottom AND leftright您可以更改 Bar Item 的位置。

于 2015-12-06T10:27:37.597 回答
3

你不能删除它。您可以通过创建带有自定义视图的条形按钮项来解决此问题,在该自定义视图中,您可以将自定义按钮全部添加为子视图。这样就可以直接控制精确定位。

于 2013-07-04T16:53:34.707 回答
2

这是一个如何解决此问题的示例:

创建 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]
}
于 2016-08-16T15:30:34.507 回答