和iOS整合
和iOS整合的意思是给用户一种吸引人的、愉快的体验来让用户在平台上宾至如归;它不是说要创建一个看起来像复制内置的app一样的app。
将你的独特的app和平台整合的最好方式是理解促进iOS的那些主旨——在Designing for iOS中有这些主旨的描述——并且思考你的app怎样表达它们。为了达成这个目标,遵守这一节的指南可以帮助你给予用户他们期待的体验。
恰当的使用标准UI元素
尽可能的使用UIKit提供的标准UI元素是好的方式。当你使用标准元素而不是自定义一个时,你和你的用户都可以获益:
- 标准UI元素会在iOS提供重新设计的样式时自动获取更新——自定义的元素不会获取更新。
- 标准UI元素会提供很多种自定义他们样式或行为的方式。比如说,所有的视图(即继承自UIVies的对象)都可以使用tintColor属性进行上色,这就可以很容易的为你的app加上颜色。
- 人们会对标准UI元素感到习惯,所以他们可以很容易的理解怎样在你的app中使用它们。
为了得到这些使用标准UI元素带来的优势,这些事情很重要:
遵守每一个UI元素的指导方针。当一个UI元素看起来和工作起来都符合人们期待的方式的时候,人们就可以根据以前的经验来帮助他们在你的app中使用它。你可以在Bars、Content Views、Controls和Temporary Views中找到UI元素的指导方针。
不要混合不同iOS版本下的UI元素风格。你不会希望通过显示看起来像在不同于当前设备运行的iOS系统版本的UI元素来让用户感到迷惑。
一般来说,不要创建一个自定义的UI元素来展现标准的动作。首先,问问你自己为什么你要创建一个行为和标准UI元素一样的自定义UI元素。如果你只是想要一个自定义的外表,考虑使用UIKit的外表定制API来改变一个标准元素的外观,或者上色。如果你想要一些稍微不同的行为,确定找出一个标准元素在调整性能和属性后会不会做出你想要的效果。如果你需要完全自定义行为,最好设计一个看起来不那么像标准元素的自定义元素。
TIP
Interface Builder让获取标准UI元素,使用外观定制API,修改性能和属性,以及为你的控件使用自定义和系统提供的图标变得很容易。查看Xcode Overview学习更多关于Interface Builder的内容。
不要使用系统定制的按钮和图标来表示其他东西。iOS提供了很多你可以用在你app中的按钮和图标。确保你理解了文件上记录的这些按钮和图标的含义;不要依赖于你对他们外表的理解。(你可以在Toolbar and Navigation Bar Buttons和Tab Bar Icons中找到每个图标的含义。)
如果你不能找到一个系统提供的按钮或图标来合适的表述你app中的一个功能,你可以创建你自己的。查看Bar Button Icons来获取指导方针帮助你设计自定义图标。
如果你的app提供了沉浸式的任务或体验,创建完全自定义的控件就变得有意义。这是因为你在创建一个独特的环境,探寻如何去控制这个环境是用户在这种app中所期待的体验。
淡化文件和文档处理
iOS app可以帮助人们创建和操作文件,但这不意味着人们需要思考iOS设备上的文件系统。
如果你的app帮助人们创建和操作文档,最好提供一些app独特的文档库视图来让用户打开一个已有的文档或者创建一个新的文档。理论上,这种库应该:
是高度图形化的。人们应该能够可以通过屏幕上的文档视觉呈现来简单的鉴别他们想要的文档。
让人们通过最少的手势来做他们想做的。比如说,人们可以水平的滚动一个已存在文档组成的滚轮或者网格来找到他们想要的文档,并通过一次点击打开它。
包含新建文档的功能。一个文档库应该可以通过点击一个图标来创建一个新的文档,而不是让人们到别的地方去创建新的文档。
比如说,Pages通过一个图形化的文档库视图和一个简单的创建新文档的方式来展示用户的文档。
TIP
你可以使用快速预览特性来让人们在你的app中预览文档,即使你的app不能打开他们。查看Quick Look来学习怎样在你的app中提供这个特性。
如果你的app允许人们使用他们在别的app中创建的文档,你可以显示一个文档选取控制器来帮助他们使用这些文档。文档选取控制器可以显示那些存在用户iCloud Drive中的除了Document Provider extensions中的文档,这与其他创建文档或者存储文档的app相关联。查看Document Provider Extensions学习更多关于Document Provider extensions的内容;查看Document Picker Programming Guide学习更多关于文档选取控制器的内容。
给人们他们的工作始终都被保存的自信,除非他们明确的取消或删除它。如果你的app帮助人们创建或者编辑文档,不要要求他们进行明确的存储动作。iOS app应该为存储用户的输入负责,包括周期地和他们打开其他的文档或在app间切换的时候。
如果你app的主要功能不是创造内容——但你允许人们在查看信息和编辑信息之间切换——要求他们保存更改就变得有意义。在这种情况下,最好在查看信息的界面提供一个编辑按钮。当人们点击编辑按钮时,用保存按钮代替它并添加一个取消按钮。编辑按钮的转变提醒人们他们是在编辑模式,并且也许需要保存更改,而取消按钮让他们可以不保存更改的退出。
如果必要的话,实现可配置
一些app也许需要给用户设置或配置选项的方式,但大多数app可以避免或延后这个工作。成功的app适应大多数人,当然也提供一些便捷的方式去调整用户体验。
当你以大部分用户期待的方式设计你的app时,你就降低了设置的需求。如果你需要用户的信息,向系统寻求而不是要求用户来提供。如果你认为以一定要提供人们很少会改变的app设置,查看The Setting Bundle来学习怎样在你的代码中支持它们。
尽可能的,在主UI中提供配置选项。当该选项是主任务并且人们经常会想要改变它们的时候,将其放在主UI就会有意义。如果人们只是偶尔改变app的配置,就将其放在分页面。
必要的话,帮助人们直接在设置中去到你app的设置。尤其是如果你显示一段描述如何找到你的设置的信息,比如“去往设置>我的app>隐私>定位服务”,用一个直接去往这个位置的按钮代替描述。查看Setting Launch URL学习如何实现这个动作。
利用iOS技术
iOS提供了丰富的技术来用用户期待的方式支持常见的任务和情景。这个期待意味着,将系统支持的技术整合进你的app总是会比设计一个自定义的方式要好。
一些iOS技术——比如Multitasking和VoiceOver——是所有app都应该包含的系统特性。其他的可以实现特殊的app功能,比如处理票和礼物卡片(Wallet),让用户使用app购买(In-App Purchase),展示app内置广告(iAd Rich Media Ads),结合Game Center以及支持iCloud。
本文翻译自苹果官方开发文档