ios – navigationItem setRightBarButtonItems间距太宽

前端之家收集整理的这篇文章主要介绍了ios – navigationItem setRightBarButtonItems间距太宽前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试减少这两个条形按钮项之间的距离.

我正在使用

navigationItem setRightBarButtonItems

设置两个按钮项目,但它们相距太远.

我试过添加负空间,我试过在它之后添加一个垫片,固定空间,灵活的空间.在文档中没有看到任何说你无法改变间距但我找不到的方法.

我在这里先向您的帮助表示感谢.

编辑后编辑:

Siu Chung Chan的回答是完全正确的,但由于我一开始并没有得到它,我想我会分享让我意识到他完全正确的代码.

如果你把它全部放在一个区块中,这就是他(非常正确)的答案:

UIView *filterBtnView = [[UIView alloc] initWithFrame:CGRectMake(0,35,35)];
UIButton *filterBtn = [[UIButton alloc] initWithFrame:CGRectMake(0,35)];
[filterBtn addTarget:self action:@selector(someMethod) forControlEvents:UIControlEventTouchUpInside];
[filterBtn setBackgroundImage:[UIImage imageNamed:@“someicon”] forState:UIControlStateNormal];
[filterBtnView addSubview:filterBtn];
UIBarButtonItem *btnFilter = [[UIBarButtonItem alloc] initWithCustomView:filterBtnView];

UIView *selectBtnView = [[UIView alloc] initWithFrame:CGRectMake(0,35)];
UIButton *selectBtn = [[UIButton alloc] initWithFrame:CGRectMake(0,35)];
[selectBtn setBackgroundImage:[UIImage imageNamed:@“someothericon”] forState:UIControlStateNormal];
[selectBtn addTarget:self action:@selector(someOtherMethod:) forControlEvents:UIControlEventTouchUpInside];
[selectBtnView addSubview:selectBtn];
UIBarButtonItem *btnSelect = [[UIBarButtonItem alloc] initWithCustomView:selectBtnView];

[self.navigationItem setRightBarButtonItems:@[btnFilter,btnSelect] animated:YES];

对我来说,这样做的好处在于它可以让人看到苹果实际设置的一些观点是如何偏向他们只想使用它们的.因此,如果您想要进行高度自定义的UI,您必须进行大量的UIView操作以绕过它们(可能)的意外障碍.

故事的道德:如果视图没有正确排列,请尝试从UIView级别重新创建视图,然后将其添加到要显示它的视图中.

再次感谢Siu Chung Chan!

解决方法

我之前做过这个.

您必须为按钮创建自己的UIView.
导致默认的uibarbuttonitem左侧和右侧有一些填充.

ViewIconBtn* searchViewIconBtn = [[ViewIconBtn alloc] initWithImage:[UIImage imageNamed:@"searchIcon.png"]];
[searchViewIconBtn.btn addTarget:self action:@selector(toSearch) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem* btnSearch = [[UIBarButtonItem alloc] initWithCustomView:searchViewIconBtn];

UIBarButtonItem *space15 = [NegativeSpacer negativeSpacerWithWidth:15];
    [self.navigationItem setRightBarButtonItems:[NSArray arrayWithObjects:space15,btnWishList,btnPost,btnSearch,nil]];

btnWishList,btnSearch都是ViewIconBtn类.
在我的项目中,我在右侧创建了3个导航按钮.

UIBarButtonItem space15用于调整边界和最右边的按钮之间的填充.

猜你在找的iOS相关文章