9

有没有办法让工具栏中的 UIBarButtonItems 均匀分布?

4

3 回答 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]];
于 2010-05-10T23:19:51.377 回答
5

忽略 UIBarButtonItem 建议的宽度;这不是 Apple 推荐的正确方法,如果您想添加更多图标,这将不起作用。

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

于 2010-05-10T23:23:44.327 回答
2

是的。UIBarButtonItem使用 的-initWithBarButtonSystemItem:方法创建一个UIBarButtonSystemItemFlexibleSpace,并将其插入到每个实际的工具栏项之间。例如:

UIBarButtonItem *flexSpace = [[UIBarButton alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace];
myToolbar.items = [NSArray arrayWithObjects:buttonOne,flexSpace,buttonTwo,flexSpace,buttonThree,nil];
[flexSpace release];
于 2010-05-10T23:20:48.167 回答