在导航栏项目之间创建空白?

Cam*_*007 5 uinavigationbar uibarbuttonitem ios

我花了几个小时才试图把这个想法变成现实.我的最后一个选择就是创建空白标签来创造空间,但我觉得它们更清洁.

基本上我有三个按钮,我们试图在它们之间创建固定空间以获得整洁.每个按钮都以编程方式添加.

我找到了这段代码:

UIBarButtonItem *fixedItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
fixedItem.width = 20.0f; // or whatever you want
Run Code Online (Sandbox Code Playgroud)

(来源)

但是如何将这段代码分配给某个按钮呢?

Aar*_*ron 9

你可能会感到困惑.您不会将此代码分配给按钮.该代码创建了一个类型的按钮UIBarButtonSystemItemFixedSpace.那么,做你所链接的答案就行了.创建固定和灵活的UIBarButtonItems(以及您拥有的其他按钮),然后在导航栏上设置它们.在这种情况下,它们将出现在导航栏的左上方区域(通过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];
Run Code Online (Sandbox Code Playgroud)

此外,如果您有工具栏,则可以使用工具栏的items属性:

self.toolbar.items = @[button1, fixedItem, button2, flexibleItem, button3];
Run Code Online (Sandbox Code Playgroud)


Wai*_*ain 0

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