我想要减小这两个导航栏按钮之间的距离。
我正在使用:
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];
对我而言,这个美妙之处在于它让我们一窥苹果是如何设置一些视图,以便只能按照他们的意愿使用。因此,如果您想要高度自定义UI,则必须进行大量的UIView操作,以绕过它们(也许是)无意中设定的障碍。
故事的寓意:如果一个视图不能正确对齐,请尝试从UIView级别重新创建该视图,然后将其添加到您要显示它的视图中。
再次感谢Siu Chung Chan!