您现在的位置是:首页 > 文章详情

《iOS 6核心开发手册(第4版)》——2.17节构建工具栏

日期:2017-05-01点击:333

本节书摘来自异步社区《iOS 6核心开发手册(第4版)》一书中的第2章,第2.17节构建工具栏,作者 【美】Erica Sadun,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.17 构建工具栏
iOS 6核心开发手册(第4版)
如果给自己提供了几个方便的宏定义,就很容易在代码中定义和布置工具栏。下面的宏将为4种可用的项目样式返回适当的栏按钮项目,如果在代码中需要更多的控制选项,还可以轻松地修改它们。这些宏打算用于自动引用计数(Automatic Reference Counting,ARC)。如果使用手动保留—释放(Manual Retain-Release,MRR)开发,就要确保利用合适的自动释放调用来修改它们。

#define BARBUTTON(TITLE, SELECTOR) [[UIBarButtonItem alloc] \ initWithTitle:TITLE style:UIBarButtonItemStylePlain\ target:self action:SELECTOR] #define IMGBARBUTTON(IMAGE, SELECTOR) [[UIBarButtonItem alloc] \ initWithImage:IMAGE style:UIBarButtonItemStylePlain \ target:self action:SELECTOR] #define SYSBARBUTTON(ITEM, SELECTOR) [[UIBarButtonItem alloc] \ initWithBarButtonSystemItem:ITEM \ target:self action:SELECTOR] #define CUSTOMBARBUTTON(VIEW) [[UIBarButtonItem alloc] \ initWithCustomView:VIEW]

这些样式是文本项目、图像项目、系统项目和自定义的视图项目。其中每个宏都提供了一个可以放在UIToolbar中的UIBarButtonItem。程序清单2-2演示了这些宏的使用,显示了如何添加每种样式,包括间隔。甚至可以向工具栏中添加自定义的视图,就像程序清单2-2所做的那样。它将插入一个UISwitch实例,作为栏按钮项目之一,如图2-11所示。


0b46ad39032854c9e086ca9239b64199c749b5ec

图2-11 自定义的栏项目可以包括诸如这个选项开关之类的视图

固定空间的栏按钮项目代表需要移到这些方便的宏之外的唯一实例。必须设置项目的width属性,定义项目将占据多大的空间。下面列出了几条最终的提示。

固定的空间可以具有宽度。在所有的UIBarButtonItem中,只有UIBarButtonSystem ItemFixedSpace项目可以指定一个宽度。因此要创建间隔项目,设置其宽度,直至此时才把它添加到你的项目阵列中。
使用单一灵活的空间以便于进行左、右对齐。在项目列表的开头添加单个UIBarButtonSystemItemFlexibleSpace,对所有其余的项目进行右对齐。在左对齐的末尾添加一个项目,使用两个项目(一个在开头、一个在末尾)创建居中对齐。
考虑遗漏的项目。当没有使用布局约束时,如果由于上下文而隐藏栏按钮项目,就不要只使用灵活的间隔来清除项目。可代之以利用与项目的原始尺寸匹配的固定宽度的空间替换项目。这可以保留布局,以及在项目消失前后使所有其他的图标保持在相同位置。
导航栏现在支持多个项目。从iOS 5.0开始,导航栏及其导航项目现在允许添加栏按钮项目的数组。如果过去曾经向导航栏中添加了工具栏,就可以代之以添加项目数组(例如,self.navigationItem.rightBarButtonItems = anArray)。这里列出的所有工具栏提示(包括灵活的间隔)也都适用于导航栏项目布局。


01627ad3d9a7435a9a57989f504d26858c5627c3
原文链接:https://yq.aliyun.com/articles/98449
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章