iPhone人机界面常见任务处理方法是本文要介绍的内容,如果您具有使用桌面计算机或便携式计算机应用程序的经验,那么您会发现iPhone应用程序处理很多常见任务的方式与它们不同。本节从人机界面的角度描述了这些常见任务;关于代码实现的技术细节,请参考iPhone应用程序编程指南。
继续上一节 iPhone人机界面常见任务处理方法 (3)的内容开始介绍,下面是一些场景,它们说明了如何选择音频会话类别,以提供用户期望的音频体验。
场景 1. 假设您正在开发一个教育应用程序,帮助人们学习一门新的语言。您需要提供在用户点击特定控件时播放的反馈声音;并提供在用户想要听到正确的发音示例时播放的单词和短语的录音。
在这个应用中,声音对于应用程序的主要功能来说是必不可少的。人们使用该应用程序,收听他们所学语言中单词和短语的发音,所以,即使当“振铃/静音”切换设置为静音或设备锁定时,也应该播放应用程序的声音。由于用户需要清楚地听到发音,因此,他们希望其他正在播放的音频被静音。
为了产生用户期望的音频体验,您应该使用Playback类别。虽然您可以改进这一类别,以便与其他音频(如表4-1中所述)进行混合,但是这个应用程序应该使用默认的行为,以确保其他音频不会与用户明确选择要收听的学习内容发生竞争。
场景 2. 假设您正在开发一个游戏,让用户控制屏幕上的人物完成许多不同的任务。您需要提供各种各样的游戏音效和一段游戏配乐。
在这个应用中,声音会大大提升用户的体验,但它并不是主要任务必不可少的一部分。此外,用户很可能希望能够在静音状态下玩游戏,或者一边听音乐库中的歌曲(而不是游戏的配乐)一边玩游戏。
最好的策略是,要了解当您的应用程序启动时用户是否正在收听其他音频。不要让用户选择是否想要听其他的音频或您应用程序的配乐。相反,要使用“音频会话服务”的
- AudioSessionGetProperty
功能,查询
- kAudioSessionProperty_OtherAudioIsPlaying
属性的状态。根据查询的结果,您可以选择Ambient类别或Solo Ambient类别(这两个类别都允许用户在静音状态下玩游戏):
如果用户正在收听其他音频,您应该假设他们想要继续收听,而不想被迫收听游戏的配乐。在这种情况下,您应该选择Ambient类别。
如果当您的应用程序启动时,用户没有收听任何其他音频,应选择Solo Ambient类别。
场景 3. 假设您正在开发一个应用程序,为用户提供准确,实时的到达所选目的地的导航指示。您需要为行程中的每一步提供语音指导,以及一些反馈声音。此外,您认为用户希望在使用应用程序的同时,能够听到他们自己的音频。
在这个应用中,语音导航指示代表了程序的主要任务。基于这个原因,您应该使用Playback类别,它让您的音频在设备锁定或“振铃/静音”切换设置为静音时仍能播放。
为了让人们在使用您应用程序的同时,收听其他的音频,您可以添加
- kAudioSessionProperty_OverrideCategoryMixWithOthers
属性。但是,您也想要确保用户可以在当前正在播放的音频之上,听到应用程序的语音指令。要做到这一点,您可以将
- kAudioSessionProperty_OtherMixableAudioShouldDuck
属性应用到音频会话。这可以确保您的音频比目前播放的所有音频(除了电话音频)更加响亮。
场景 4. 假设您正在开发一个博客应用程序,允许用户向中心网站上传他们的文字和图片。您可能有一个简短的启动声音文件,各种各样简短的声音效果(比如当用户完成上载时播放的声音),以及当上载失败时播放的警告声音。
在这个应用中,声音会提升用户的体验,但它只是附加的。程序的主要任务与音频无关,用户不需要听到任何声音,也能成功使用该应用程序。在这种情况下,您可以使用“系统声音服务”产生声音。这是因为应用程序中所有声音的音频上下文都符合这一技术的目的,也就是要产生用户期望的,遵从设备锁定和“振铃/静音”切换的用户界面音效和警告声音。
提供选项
iPhone OS包含一些帮助用户做出选择的元素。当您需要在应用程序中提供选项时,您应该使用这些选择方法,因为用户已经熟悉了它们的行为。一般来说,您不应该试图复制在桌面计算机应用程序中看到的选择控件的外观和行为,比如应用程序菜单或一组单选按钮。iPhone OS提供了以下元素,您可以用来向用户提供选项:
列表(即表格视图)。用户点击列表中的某一行选择一项。列表几乎适合于显示任何数量的选项。有关在应用程序中使用表格视图的方法的详细信息,请参考“表格视图”。
选择器,包括日期和时间选择器。用户转动选择器的转轮,直到每个转轮显示出值的相应部分,比如包含年,月,日的日历日期。要了解有关在您的iPhone应用程序中使用选择器的更多信息,请参考“日期和时间选择器”和“选择器”。
开关控件。用户将开关控件从一侧滑动至另一侧,显示出两个值之一。开关控制的设计意图是在列表的内部提供一个简单的选项。有关开关控件的更多信息,请参考“开关控件”。
提供许可协议或免责声明
如果您随同iPhone应用程序提供了终端用户的许可协议(或EULA),App Store会显示该协议,以便用户在使用您的应用程序之前可以阅读它。
如果可能的话,尽量避免要求用户在第一次启动您的应用程序时,表示他们同意您的终端用户许可协议。这样用户能够立即享用您的应用程序。但是,即使这是首选的用户体验,它可能无法在所有情况下都行得通。如果您必须在您的应用程序中显示许可协议,请尝试采用一种与您的用户界面相一致的方式,这样可以将给用户造成的不便降到最低。
同样,如果您需要提供免责声明,一定要平衡好业务需求与良好的用户体验。如果可以的话,在您的应用程序描述或EULA中提供您的免责声明,以便它可以用在App Store中。
小结:iPhone人机界面常见任务处理方法 (4)的内容介绍完了,希望本文对你有所帮助。请深入了解以下文章: