《iOS 6核心开发手册(第4版)》——2.17节构建工具栏
本节书摘来自异步社区《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所示。
图2-11 自定义的栏项目可以包括诸如这个选项开关之类的视图
固定空间的栏按钮项目代表需要移到这些方便的宏之外的唯一实例。必须设置项目的width属性,定义项目将占据多大的空间。下面列出了几条最终的提示。
固定的空间可以具有宽度。在所有的UIBarButtonItem中,只有UIBarButtonSystem ItemFixedSpace项目可以指定一个宽度。因此要创建间隔项目,设置其宽度,直至此时才把它添加到你的项目阵列中。
使用单一灵活的空间以便于进行左、右对齐。在项目列表的开头添加单个UIBarButtonSystemItemFlexibleSpace,对所有其余的项目进行右对齐。在左对齐的末尾添加一个项目,使用两个项目(一个在开头、一个在末尾)创建居中对齐。
考虑遗漏的项目。当没有使用布局约束时,如果由于上下文而隐藏栏按钮项目,就不要只使用灵活的间隔来清除项目。可代之以利用与项目的原始尺寸匹配的固定宽度的空间替换项目。这可以保留布局,以及在项目消失前后使所有其他的图标保持在相同位置。
导航栏现在支持多个项目。从iOS 5.0开始,导航栏及其导航项目现在允许添加栏按钮项目的数组。如果过去曾经向导航栏中添加了工具栏,就可以代之以添加项目数组(例如,self.navigationItem.rightBarButtonItems = anArray)。这里列出的所有工具栏提示(包括灵活的间隔)也都适用于导航栏项目布局。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
《Android应用开发入门经典(第3版)》——第1.1节建立开发环境
本节书摘来自异步社区《Android应用开发入门经典(第3版)》一书中的第1章,第1.1节建立开发环境,作者 【美】Carmen Delessio , Lauren Darcey , Shane Conder,更多章节内容可以访问云栖社区“异步社区”公众号查看 1.1 建立开发环境Android应用开发入门经典(第3版)要进行Android开发,首先需要创建一个可工作的开发环境。Android开发使用的是Java开发语言,用于支持Android开发的重要工具都是内置于Eclipse集成开发环境(IDE)中的,当然IntelliJ和基于IntelliJ的Android Studio也是不错的工具。本书使用的工具是Eclipse。要安装Eclipse和支持Android的Eclipse插件(Android Developer Tools),需要下载一个单独的被称为ADT Bundle的安装文件。 读者可以下载本书中的示例源代码,在本章中读者将会学到更多有关Eclipse项目的知识。一般来讲,这些代码位于那些名称形如Hour1App的项目中。 1.1.1 使用ADT包安装要开始进行Andro...
- 下一篇
《Android 开发入门与实战(第二版)》——导读
本节书摘来自异步社区《Android 开发入门与实战(第二版)》一书中的目录,作者eoe移动开发者社区 组编 , 姚尚朗 , 靳岩,更多章节内容可以访问云栖社区“异步社区”公众号查看 目 录 第1章 掀起你的盖头来——Android开发扫盲第2章 工欲善其事必先利其器——搭建环境Android第3章 清点可用的资本——Android SDK介绍第4章 千里之行始于足下——Hello EoE第5章 良好的学习开端——Android应用程序架构分析第6章 Android的核心——Activity 6.1 什么是Activity 6.2 Activity的生命周期 6.3 Activity的监控范围内的三个主要循环 6.4 Activity拥有四个基本的状态 6.5 Task、栈以及加载模式 6.6 配置改变 6.7 如何保存和恢复Activity状态 6.8 启动Activity并得到结果 6.9 Activity小实例 6.10 本章小结 第7章 我来“广播”你的意图第8章 一切为用户服务——Service第9章 提供数据的引擎——Content Providers第10章 我的美丽我做...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果