我正在尝试减小这两个栏按钮项之间的距离。
我在用
navigationItem setRightBarButtonItems
要设置两个按钮项,但它们相距太远。
我试过添加负空间,我试过在它后面添加一个间隔符,固定空间,灵活空间。在文档中没有看到任何内容表明您无法更改间距,但我找不到具体方法。
提前感谢您的帮助。
回答后编辑:
Siu Chung Chan 的回答完全正确,但由于一开始我不太明白,所以我想我会分享让我意识到他是完全正确的代码。
如果您将所有内容放在一个 block 中,这就是他(非常正确)的答案:
UIView *filterBtnView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 35, 35)];
UIButton *filterBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 35, 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, 0, 35, 35)];
UIButton *selectBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 35, 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];
对我来说,这样做的美妙之处在于,它让我们得以一窥 Apple 实际设置的某些 View 是如何偏向于他们只想如何使用它们的。所以如果你想做高度定制的 UI,你必须做大量的 UIView 操作来绕过他们(可能)意想不到的障碍。
故事的寓意:如果 View 不适合您,请尝试从 UIView 级别向上重新创建 View ,然后将其添加到您想要显示它的 View 中。
再次感谢陈小钟!
最佳答案
我以前做过。
您必须为按钮创建自己的 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、btnPost、btnSearch 都是 ViewIconBtn 类。 在我的项目中,我在右侧创建了 3 个导航按钮。
UIBarButtonItem space15 用于调整边界和最右边的 barbutton 之间的填充。
关于ios - navigationItem setRightBarButtonItems 间距太宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27098924/