如何改变UINavigationBar按钮之间的距离

时间:2014-11-14 09:21:00

标签: ios objective-c uinavigationbar

我设置了两个导航栏按钮,它之间有一个空格,如何更改此空间以将按钮设置为彼此更近? 我尝试添加带负宽度的第三个按钮,这里是代码

self.editButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"Edit.png"] style:UIBarButtonItemStylePlain target:self action:@selector(editAction:)];
self.callButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"call_icon.png"] style:UIBarButtonItemStylePlain target:self action:@selector(editAction:)];
UIBarButtonItem *spacer = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:nil] style:UIBarButtonItemStylePlain target:self action:nil];
spacer.width = -30;

NSArray *buttons = @[self.editButton, spacer, self.callButton];
self.navigationItem.rightBarButtonItems = buttons;

但它不起作用;任何建议?

2 个答案:

答案 0 :(得分:2)

UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc]
                                       initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace
                                  target:nil action:nil];
negativeSpacer.width = -16;// it was -6 in iOS 6
[self.navigationItem rightBarButtonItems:[NSArray arrayWithObjects:negativeSpacer, requriedButton/*this will be the button which u actually need*/, nil] animated:NO];

希望这对你有用......

答案 1 :(得分:0)

您可以使用样式UIBarButtonItem创建UIBarButtonSystemItemFixedSpace并将其添加到按钮数组中。