我花了几个小时才试图把这个想法变为现实。我的最后一个选择是创建空白标签来创造空间,但我觉得他们的方式更清晰。
基本上我有三个按钮,我们试图在它们之间创造固定空间以保持整洁。每个按钮都以编程方式添加。
我找到了这段代码:
UIBarButtonItem *fixedItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
fixedItem.width = 20.0f; // or whatever you want
(Source)
但是如何将这段代码分配给某个按钮呢?
答案 0 :(得分:8)
你可能会感到困惑。您不会将此代码分配给按钮。该代码创建了一个UIBarButtonSystemItemFixedSpace
类型的按钮。那么,做你所链接的答案就行了。创建固定和&灵活的UIBarButtonItem
(以及您拥有的其他按钮),然后在导航栏上设置它们。在这种情况下,它们会显示在导航栏的左上角区域(通过leftBarButtonItems
):
// Create "Normal" buttons items:
UIBarButtonItem *button1 = [[UIBarButtonItem alloc] initWithTitle:@"1" style:UIBarButtonItemStylePlain target:Nil action:nil];
UIBarButtonItem *button2 = [[UIBarButtonItem alloc] initWithTitle:@"2" style:UIBarButtonItemStylePlain target:Nil action:nil];
UIBarButtonItem *button3 = [[UIBarButtonItem alloc] initWithTitle:@"3" style:UIBarButtonItemStylePlain target:Nil action:nil];
// Create "Spacer" bar button items
UIBarButtonItem *fixedItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
fixedItem.width = 20.0f; // or whatever you want
UIBarButtonItem *flexibleItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
self.navigationItem.leftBarButtonItems = @[button1, fixedItem, button2, flexibleItem, button3];
此外,如果您有工具栏,则可以使用工具栏的items
属性:
self.toolbar.items = @[button1, fixedItem, button2, flexibleItem, button3];
答案 1 :(得分:4)
如果要在Interface Builder中执行此操作。 我试图拖动灵活或固定的空格键项,但它似乎不能在导航栏中工作。 解决方法:在条形按钮之间拖动UIView。在尺寸检查器中调整UIView的宽度,并将视图颜色和条形按钮项设置为清除颜色。
答案 2 :(得分:0)
您可以多次将此按钮添加到具有其他按钮的数组中。然后,您将该数组设置为rightBarButtonItems
(或leftBarButtonItems
)或视图控制器导航项。