iOS 7 UIBarButtonItem荒谬的间距问题

Kel*_*der 8 uinavigationbar spacing uibarbuttonitem ios ios7

我有一个问题,到目前为止我找不到解决方案.我正在为我的应用添加一个新功能,并希望在我的UINavigationBar的左侧添加第二个UIBarButtonItem.出于某种原因,iOS 7将其作为button1,grandCanyon,button2.我找不到任何方法来消除这两个按钮之间的荒谬间距,这也导致我的标题不对齐.任何人都可以帮忙!?这个问题有方法解决吗!?

在此输入图像描述

码:

UIBarButtonItem *firstButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"firstButton"] style:UIBarButtonItemStylePlain target:self action:@selector(showSettings)];
UIBarButtonItem *secondButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"secondButton"] style:UIBarButtonItemStylePlain target:self action:@selector(showAttachments)];
[self.navigationItem setLeftBarButtonItems:[NSArray arrayWithObjects:firstButton, secondButton, nil]];
Run Code Online (Sandbox Code Playgroud)

Kel*_*der 4

我想我已经成功地使用自定义视图解决了这个问题,如下所示,它并不完美(例如,选择使按钮变暗而不是变亮),但明天我会尝试解决这个问题。很高兴我的头痛结束了!感谢您的帮助,它引导我找到了一些我没有尝试过的新方法。

UIImage *firstButtonImage = [UIImage imageNamed:@"firstButton"];
firstButtonImage = [firstButtonImage imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

UIButton *firstButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 35, 35)];
[firstButton setImage:firstButtonImage forState:UIControlStateNormal];
[firstButton addTarget:self action:@selector(firstButtonPressed) forControlEvents:UIControlEventTouchUpInside];

UIImage *secondButtonImage = [UIImage imageNamed:@"secondButton"];
secondButtonImage = [secondButtonImage imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

UIButton *secondButton = [[UIButton alloc] initWithFrame:CGRectMake(45, 0, 35, 35)];
[secondButton setImage:secondButtonImage forState:UIControlStateNormal];
[secondButton addTarget:self action:@selector(secondButtonPressed) forControlEvents:UIControlEventTouchUpInside];

UIView *leftBarItemsView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 80, 35)];
[leftBarItemsView addSubview:firstButton];
[leftBarItemsView addSubview:secondButton];

UIBarButtonItem *leftBarItem = [[UIBarButtonItem alloc] initWithCustomView:leftBarItemsView];

[self.navigationItem setLeftBarButtonItems:[NSArray arrayWithObject:leftBarItem]];
Run Code Online (Sandbox Code Playgroud)