如何在iOS通用应用程序中对齐UIToolbar中的UIBarButtonItem?

Bla*_*ard 23 xcode uibarbuttonitem ios autolayout swift

我想在iOS通用应用程序中放置两个UIBarButtonItem实例UIToolbar,第一个项目位于工具栏的左边缘,第二个项目位于中心.但是,看起来这不能在Interface Builder中完成,因为自动布局不支持强制UIBarButtonItem类的约束,因为它不是来自的子类UIView.

请注意,我不想将第一个放在左边缘而第二个放在右边缘 - 我必须将第二个按钮放在中心位置.此外,我没有计划使用第三个按钮,以相等的间隔将它们对齐为左,中,右.

在故事板中是否仍然可以在这种情况下添加这种约束?我使用Xcode 6 beta 5.

Ima*_*tit 74

您可以在故事板中完成所有操作.

Bar Button Item在对象库中选择一个并将其拖入您的Toolbar.Flexible Space Bar Button Item在右边添加一个.Bar Button Item在右边添加你的第二个.然后,Flexible Space Bar Button Item在右侧添加一秒钟.

结果在Interface Builder中如下所示:

在此输入图像描述

如果有必要,您可以Fixed Space Bar Button Item在您的右边添加一个额外的,Toolbar以确保您的第二个Bar Button Item真正居中.

用户lxt在这里给出了类似问题的另一个例子.

编辑:在继续操作之前,请确保您的UIToolbar具有良好的约束!


Moh*_*ami 6

你可以以编程方式执行此操作

UIBarButtonItem *flexible = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];

UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithTitle:@"item1" style:UIBarButtonItemStylePlain target:self action:nil];
UIBarButtonItem *item2 = [[UIBarButtonItem alloc] initWithTitle:@"item2" style:UIBarButtonItemStylePlain target:self action:nil];
UIBarButtonItem *item3 = [[UIBarButtonItem alloc] initWithTitle:@"item3" style:UIBarButtonItemStylePlain target:self action:nil];

self.toolbarItems = [NSArray arrayWithObjects: item1, flexible, item2, flexible, item3, nil];
Run Code Online (Sandbox Code Playgroud)

如果您想了解更多详情,请查看此链接

如何将UIBarButtonItem放在UIToolbar的右侧?