《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所示。


0b46ad39032854c9e086ca9239b64199c749b5ec

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

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

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


01627ad3d9a7435a9a57989f504d26858c5627c3
相关文章
|
安全 Android开发 iOS开发
Android vs. iOS:构建生态差异与技术较量的深度剖析###
本文深入探讨了Android与iOS两大移动操作系统在构建生态系统上的差异,揭示了它们各自的技术优势及面临的挑战。通过对比分析两者的开放性、用户体验、安全性及市场策略,本文旨在揭示这些差异如何塑造了当今智能手机市场的竞争格局,为开发者和用户提供决策参考。 ###
|
开发框架 Android开发 iOS开发
探索安卓与iOS开发的差异:构建未来应用的指南
在移动应用开发的广阔天地中,安卓与iOS两大平台各占半壁江山。本文将深入浅出地对比这两大操作系统的开发环境、工具和用户体验设计,揭示它们在编程语言、开发工具以及市场定位上的根本差异。我们将从开发者的视角出发,逐步剖析如何根据项目需求和目标受众选择适合的平台,同时探讨跨平台开发框架的利与弊,为那些立志于打造下一个热门应用的开发者提供一份实用的指南。
237 32
|
开发工具 Android开发 iOS开发
Android vs iOS:构建移动应用时的关键考量####
本文深入探讨了Android与iOS两大移动平台在开发环境、性能优化、用户体验设计及市场策略方面的差异性,旨在为开发者提供决策依据。通过对比分析,揭示两个平台各自的优势与挑战,帮助开发者根据项目需求做出更明智的选择。 ####
|
Android开发 iOS开发 C#
Xamarin.Forms:从零开始的快速入门指南——打造你的首个跨平台移动应用,轻松学会用C#和XAML构建iOS与Android通用界面的每一个步骤
【8月更文挑战第31天】Xamarin.Forms 是一个强大的框架,让开发者通过单一共享代码库构建跨平台移动应用,支持 iOS、Android 和 Windows。使用 C# 和 XAML,它简化了多平台开发流程并保持一致的用户体验。本指南通过创建一个简单的 “HelloXamarin” 应用演示了 Xamarin.Forms 的基本功能和工作原理。
523 1
|
Swift iOS开发 开发者
探索iOS开发:使用SwiftUI构建现代应用程序
【8月更文挑战第3天】在本文中,我们将一起潜入SwiftUI的世界,这是一个创新的框架,它让iOS应用的开发变得更加简单快捷。我们将通过一个实际的项目示例来展示如何利用SwiftUI的强大功能,快速搭建起一个既美观又实用的应用界面。无论你是刚入门的新手还是寻求提升的开发者,这篇文章都将为你提供宝贵的知识和技能。
224 10
|
测试技术 虚拟化 iOS开发
iOS自动化测试方案(二):Xcode开发者工具构建WDA应用到iphone
这篇文章是iOS自动化测试方案的第二部分,详细介绍了在Xcode开发者工具中构建WebDriverAgent(WDA)应用到iPhone的全过程,包括环境准备、解决构建过程中可能遇到的错误,以及最终成功安装WDA到设备的方法。
1391 0
iOS自动化测试方案(二):Xcode开发者工具构建WDA应用到iphone
|
开发工具 Android开发 iOS开发
探索安卓与iOS开发的差异:构建未来应用的关键考量
在数字时代的浪潮中,安卓和iOS这两大操作系统如同双子星座般耀眼夺目,引领着移动应用的潮流。它们各自拥有独特的魅力和深厚的用户基础,为开发者提供了广阔的舞台。然而,正如每枚硬币都有两面,安卓与iOS在开发过程中也展现出了截然不同的特性。本文将深入剖析这两者在开发环境、编程语言、用户体验设计等方面的显著差异,并探讨如何根据目标受众和项目需求做出明智的选择。无论你是初涉移动应用开发的新手,还是寻求拓展技能边界的资深开发者,这篇文章都将为你提供宝贵的见解和实用的建议,帮助你在安卓与iOS的开发之路上更加从容自信地前行。
|
Android开发 iOS开发 C#
Xamarin:用C#打造跨平台移动应用的终极利器——从零开始构建你的第一个iOS与Android通用App,体验前所未有的高效与便捷开发之旅
【8月更文挑战第31天】Xamarin 是一个强大的框架,允许开发者使用单一的 C# 代码库构建高性能的原生移动应用,支持 iOS、Android 和 Windows 平台。作为微软的一部分,Xamarin 充分利用了 .NET 框架的强大功能,提供了丰富的 API 和工具集,简化了跨平台移动应用开发。本文通过一个简单的示例应用介绍了如何使用 Xamarin.Forms 快速创建跨平台应用,包括设置开发环境、定义用户界面和实现按钮点击事件处理逻辑。这个示例展示了 Xamarin.Forms 的基本功能,帮助开发者提高开发效率并实现一致的用户体验。
543 0
|
开发工具 Android开发 iOS开发
探索安卓与iOS开发的差异:构建未来应用的关键考量
在数字时代,选择正确的开发平台是成功的一半。本文深入探讨了安卓与iOS两大移动操作系统的开发差异,并分析了各自对创新、用户体验和市场需求的响应。通过比较两者的设计哲学、开发工具、市场覆盖和用户参与度,我们揭示了每个平台的独特优势和潜在挑战,旨在为开发者提供决策时的洞见,帮助他们在竞争激烈的应用市场中做出明智的选择。
|
机器学习/深度学习 JSON 开发工具
探索iOS开发:构建你的第一个天气应用深度学习在图像识别中的应用与挑战
【7月更文挑战第31天】在数字时代的浪潮中,移动应用成为了连接世界与个人的重要桥梁。本文将带你走进iOS开发的世界,通过一个实际的项目——构建一个简单的天气应用,来展示如何利用Swift编程语言和苹果的开发工具进行iOS应用开发。我们将从设置开发环境开始,逐步介绍界面设计、数据获取、以及功能实现等关键步骤。无论你是编程新手还是希望扩展技能的开发者,这篇文章都将为你提供一个清晰的指南,帮助你理解并实施一个完整的iOS应用开发过程。让我们开始吧,一起创造属于你的第一款iOS应用! 【7月更文挑战第31天】深度学习作为人工智能领域的重要分支,已经在多个领域取得了显著的成果。特别是在图像识别方面,深
190 0