iPhone工具栏按钮间距

9
有没有办法让工具栏中的UIBarButtonItems均匀地分布?
3个回答

18

在你的UIBarButtonItems之间放置一个弹性空格按钮项。这在IB中非常容易完成,只需在控件底部查找即可。

如果你想以编程方式完成此操作,以下代码应该有所帮助:

UIBarButtonItem* button1 = [[UIBarButtonItem alloc] initWithTitle:@"Button1" style:UIBarButtonItemStyleBordered target:self action:@selector(button1Action)];
UIBarButtonItem* button2 = [[UIBarButtonItem alloc] initWithTitle:@"Button2" style:UIBarButtonItemStyleBordered target:self action:@selector(button2Action)];
UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[myToolbar setItems:[NSArray arrayWithObjects:button1, flexibleSpace, button2, nil]];

还要记住,您也可以使用FixedSpace,并显式设置宽度,以便在对齐不符合您的期望时进行调整。 - mclin
此外,如果您想插入自定义视图,如滑块或搜索栏,可以通过引用可伸缩空间项的边界来对其进行框架和调整大小。 - Lee Probert

5

忽略UIBarButtonItem建议中的宽度;这不是苹果推荐的正确方法,并且如果您想添加更多图标,它将无法正常工作。

正确的方法是在每个按钮之间添加“可伸缩空间”(技术上另一个按钮!)。您可以在Interface Builder中看到它,或者如果需要,可以直接在代码中添加。


2

好的。使用-initWithBarButtonSystemItem:方法创建一个带有UIBarButtonSystemItemFlexibleSpaceUIBarButtonItem,并将其插入到每个实际工具栏项之间即可。例如:

UIBarButtonItem *flexSpace = [[UIBarButton alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace];
myToolbar.items = [NSArray arrayWithObjects:buttonOne,flexSpace,buttonTwo,flexSpace,buttonThree,nil];
[flexSpace release];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接