【发布时间】:2014-11-24 06:18:51
【问题描述】:
我正在尝试减少这两个条形按钮项目之间的距离。
我正在使用
navigationItem setRightBarButtonItems
设置两个按钮项,但它们相距太远。
我尝试添加负空间,我尝试在其后添加间隔,固定空间,灵活空间。在文档中看不到任何内容说您无法更改间距,但我找不到如何更改。
提前感谢您的帮助。
回答后编辑:
Siu Chung Chan 的回答完全正确,但由于我一开始不太明白,我想我会分享让我意识到他完全正确的代码。
如果您将所有内容放在一个块中,这就是他的(非常正确)答案的样子:
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 实际设置的某些视图是如何偏向于他们只想如何使用它们的。所以如果你想做高度定制的 UI,你必须做很多 UIView 操作来绕过他们(也许)意想不到的障碍。
故事的寓意:如果视图不适合您,请尝试从 UIView 级别重新创建视图,然后将其添加到您要在其中显示它的视图中。
再次感谢陈小中!
【问题讨论】:
-
查看图片尺寸宽度是否很大。
-
谢谢。按钮的大小是我放入按钮的图像的大小。所以决定间距的是别的东西。
标签: ios uinavigationcontroller uibarbuttonitem