2014-03-05 212 views
4

我花了好几个小时试图弄清楚这个问题。我最后的选择是创建空白标签来创造空间,但我觉得他们是一个更清洁的方式。在导航栏项目之间创建空白空间?

基本上我有三个按钮,我们正试图在它们之间创造固定的空间来整洁。每个按钮都以编程方式添加。

我发现这个代码:

UIBarButtonItem *fixedItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; 
fixedItem.width = 20.0f; // or whatever you want 

Source

但是你怎么在这一段代码分配给某个按钮?

回答

0

您可能会多次将此按钮添加到其他按钮的数组中。然后,您将该阵列设置为rightBarButtonItems(或leftBarButtonItems)或您的视图控制器导航项目。

8

它可能会让你感到困惑。您不要将此代码分配给按钮。该代码创建了一个类型为UIBarButtonSystemItemFixedSpace的按钮。所以,做一下你所说的答案吧。创建固定的& flexible UIBarButtonItem s(以及其他按钮),然后将其设置在导航栏上。在这种情况下,他们将出现在您的导航栏的左上角区域(通过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]; 
+0

的间距现在与按钮,但是现在的按键间隔,他们不再与特定选择的操作工作。这些按钮在之前被创建为UIButton,然后作为UIBarButtonItems放置在导航栏数组中,这是他们之前能够运行的。你认为我如何回到功能? – Camerz007

+0

我们得到它的工作!非常感谢!!我们必须改变目标为“自我”。 – Camerz007

+0

如果这回答了您的问题,请打勾! – Aaron

4

如果你想在Interface Builder中做到这一点。 我试图拖动一个灵活的或固定的空格栏项目,但它似乎不能在导航栏中工作。 解决方法:在条形按钮之间拖动UIView。在大小检查器中调整UIView的宽度,并将视图的颜色和条形按钮项目设置为清除颜色。

enter image description here

+0

感谢您的支持。我希望在IB中有更好的方法!你有没有找到? –

相关问题