处理常见任务
启动
仅横向显示的应用程序应该支持两种“横向”—不论“主页”按钮在屏幕右侧还是左侧,都能够正常显示应用程序。如果设备本身已经被横向放置,则这种仅横向显示的应用程序就按照设备的方向启动。否则,在默认情况下,仅横向显示的应用程序在启动时,“主页”按钮只能在应用程序的右方。
停止
应用程序的终止不需要用户点击应用程序关闭按钮或在菜单上选择“退出”操作。
-
随时准备接收退出或终止通知。因此,要尽可能快并且在合理情况下经常保存用户数据。
-
当应用程序终止时,尽可能详细地保存它的当前状态。例如,如果您的应用程序能够显示滚动的数据,则应该保存当前的滚动位置。
iPhone应用程序不应该直接通过代码退出,因为这样做会使用户觉得应用程序崩溃了。
管理设置或配置选项
可设置的应该是一些用户设置一次后很少(如果有的话)改变的信息,比如帐户名称。(内置的“设置”程序中)
配置选项是一些用户可能想要经常改变的值,比如在列表中显示的分类的类型;配置选项应该由应用程序本身提供。(应用程序本身)
您不应该在您的应用程序中同时提供设置和配置选项。
支持复制和粘贴
iPhone OS提供了编辑(或粘贴板)菜单,它支持在文本视图,Web视图和图像视图中的“剪切”,“复制”,“粘贴”,“选择”和“全选”操作。
您可以指定菜单中显示的操作,您可以改变菜单出现的位置。但是,您不能控制菜单本身的颜色和形状
如果一个按钮执行的是编辑菜单中已有的操作,则要避免创建这样的按钮。
支持撤销和重做
启用推送通知
注意:推送通知的投递是无保证的。此外,用户也可以拒绝接收系统范围内的通知。推送通知的目的是提醒用户有新数据到达,而不是向您的应用程序传递关键的数据。
请注意,当有通知被投递时,您不能强制使设备振动;用户能够控制收到警告时是否伴有振动。
警告会打断用户的工作流程,因此最好谨慎地使用它,并且只用它来投递有关某事件的简短的,重要的消息。特别地,一定要避免在您的警告消息中包含任何广告内容。
提供搜索功能并显示搜索结果
一般来说,您应该:
-
为您的数据建立索引,以便随时进行搜索。
-
实时过滤本地的数据,一旦用户开始输入,您就显示结果,并且随着用户继续输入而逐步缩小结果范围。
-
如果可能的话,在用户输入时也同时过滤远程数据,但是,如果这部分的响应时间有可能将搜索结果的计算推迟1-2秒钟以上,一定要经过用户的允许。
-
在列表上面显示搜索栏或者在列表内显示索引。
-
避免为搜索打开一个标签页,除非它是您应用程序中的主要功能,应该被标识为一个不同的模式。
虽然实时过滤数据通常能够产生出色的用户体验,但这并不总是可行的。如果无法实时过滤数据,您可以在用户在键盘上点击“搜索”按钮之后再开始搜索过程。如果您要这样做,一定要提供有关搜索进度的反馈信息,以便让用户知道搜索进程没有停止。一种方法就是尽快显示文本结果,并为那些可能需要更长时间检索的数据显示占位符内容。
使用用户的位置信息
用户可以通过“设置” > “一般”中的“位置服务”设置来选择同意(或拒绝)系统范围内对他们的物理位置的访问。
为了让用户知道他们为什么要打开位置服务,您最好只在用户试图使用一项显然需要获知他们当前位置的功能时,才显示警告。例如,当位置服务关闭时,用户仍然可以使用地图应用程序,但是,当他们访问发现并跟踪其当前位置的功能时,会看到警告。
知道了用户的偏好设置信息,您就可以尽可能准确地为需要位置信息的功能触发警告,或是完全地消除警告。
-
如果您的应用程序在没有这些信息的情况下无法执行它的主要功能,您最好在用户启动应用程序时尽快让他们看到警告。用户不会为此感到困扰,因为他们明白应用程序的主要功能依赖于知晓他们的位置。
-
如果用户的位置不是您应用程序基本功能的一部分,您可以选择简单地限制那些用到位置信息的功能。例如,当位置服务关闭时,相机应用程序会自动关闭将用户的位置添加到他们所拍摄的照片的功能。但应用程序并不会阻止用户拍照,除非他们改变偏好设置的选项,这是因为“将位置信息添加到照片”只是一个附加功能,而不是基本功能。
-
如果某项功能需要位置信息才能工作,一定要避免在用户实际选择该功能之前执行任何编程调用触发警告。(获取用户偏好设置信息的调用不会触发警告。)这样,您就可以避免让用户感到奇怪,为什么您的应用程序在用户做一些看似不需要位置信息的事情时,想要得到他们的位置信息。
使用声音
定义应用程序的音频行为
-
当设备锁定或切换至静音时,您的音频是否应该继续播放。
-
您的音频是否应该与当前正在播放的其他音频混合在一起(比如iPod中的歌曲)。
-
您的应用程序是否需要顺序或并行地同时处理音频输入和输出。
-
您的音频是否应该在中断后自动恢复播放。
重要:无论您使用何种技术产生音频,无论您如何定义它的行为,电话可以随时中断当前正在运行的应用程序。这是因为任何应用程序都不应该阻止用户接听来电。