在工具栏中定位条形按钮项

Posted

技术标签:

【中文标题】在工具栏中定位条形按钮项【英文标题】:Position a bar button item in a toolbar 【发布时间】:2011-07-18 14:06:20 【问题描述】:

我的应用程序顶部和底部都有一个工具栏,我需要创建按钮以放入工具栏中。设计此应用程序的人希望在工具栏上的按钮之间放置空间。除了手动编码改变按钮的位置之外,有没有更好的方法通过 Interface Builder 来完成?

【问题讨论】:

【参考方案1】:

您可以在需要空间的位置添加 UIBarButtonSystemItemFlexibaleSpace 类型的条形按钮。

UIBarButtonItem *barButton1 = ...
UIBarButtonItem *barButton2 = ...

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

toolbar.items = [NSArray arrayWithObjects:barButton1, 
                                          flexibleSpaceBarButton, 
                                          barButton2, nil];

【讨论】:

您现在也可以在 xib/storyboard 文件中执行此操作。拖放 UIBarButtonItem,然后将其标识符属性设置为 Fixed 或 Flexible Space。 @HashimAkhtar 在哪里可以在 IB 中设置标识符属性?在 Xcode 8 中,我只看到“系统项”,没有看到“标识符”【参考方案2】:

正如 EmptyStack 所写,您可以使用 UIBarButtonItemFlexibleSpace 在按钮之间创建空间。您可以使用上面编写的代码,也可以在 Interface Builder 中执行。在 IB 中,您必须放置工具栏,然后如果我记得正确地在项目列表的末尾附近,您可以找到工具栏项目。因此,您可以将灵活的空间项添加到工具栏,调整其宽度,然后将“真实”栏按钮添加到工具栏。您可以像普通 UIButtons 一样声明 outlets 并将操作分配给 barbuttons。

【讨论】:

以上是关于在工具栏中定位条形按钮项的主要内容,如果未能解决你的问题,请参考以下文章

栏按钮项以编程方式添加工具栏

工具栏中的栏按钮方法未调用

使用 Swift 以编程方式创建的 UIBarButtonItem,不可见

在 IB 中为啥不能添加多个条形按钮项?

从 Swift 中的属性检查器列表更改条形按钮图像

Swift 中的条形按钮项启用问题