我正在使用self.navigationItem.rightBarButtonItems
来设置导航栏项目。但是,对于条形按钮,我使用的是自定义视图(按钮)。我观察到按钮之间有间距。我该如何删除?
答案 0 :(得分:13)
我知道为时已晚,但我使用UIBarButtonItem
的以下方法解决了
使用
[barbuttonitem setImageInsets:UIEdgeInsetsMake(0, -30, 0, -70)];
答案 1 :(得分:4)
我通过使用storybord界面解决了这个问题。我知道你使用的是自定义栏,但这个答案对于那些使用stroybord的人很有用。
1.选择Bar item
。
2.选择Size Inspector
。
在这里,您可以使用top
,bottom
和left
,right
找到图片插件,您可以更改条形图的位置。
答案 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]
}