返回《iOS Human Interface Guidelines译文》

搜索要反应迅速、结果丰硕

在那些需要操控或展示海量数据的程序中, 搜索是一个主要功能。 如果你需要在程序中提供搜索,建议遵循以下指南:

建立索引,时刻为搜索做好准备。不要等用户请求搜索时才做,你不想让程序给用户留下不好的印象吧?

动态过滤本地信息,以便快速反馈展示结果。最好是在用户输入的时候就动态的过滤信息,在用户继续输入时精炼结果。虽然动态过滤信息通常能提供顶级的用户体验,但并不总是现实的。 当动态过滤不现实时, 你可以在用户点击键盘上的搜索键时开始搜索。这样做时,要对搜索过程提供进度反馈,这样用户就知道没卡壳。

可能的话,也可以在用户输入时过滤远程数据。虽然过滤用户的输入能提供很好的搜索体验,但如果响应时间可能延迟一到两秒时,要征求用户同意。

在列表或列表索引的顶部放置搜索框。用户希望在这个位置找到搜索框,因为他们已经习惯了 Contacts 等应用中的放置习惯。在这里放置搜索框意味着用户翻滚列表或索引时不会有什么干扰,但又能在需要的时候方便地获取。

只在一些特殊的情境中为搜索提供 tab。如果搜索在你的程序中戏份很重,那你可能会想在一个独立的模式中进行搜索。在 iTunes 中,寻找和获得音乐、播客是程序的重点。用户想要在任何模式下都能迅速找到他们最爱的歌曲、艺术家、播客。所以放置一个随时可获得的搜索 tab 是可以理解的。

有必要的话,放一些空的占位符,等数据可用时再去丰富它。通过这种方式,你可以敏捷地为用户提供信息。 在某局域网中不存在的视频门户网站上, 用户在点击搜索按钮后触发了搜索请求。如果网速很慢,该网站先展示动态的"loading"" ,这样用户就知道搜索在进行中。然后,该网站展示只有文本信息的列表,比如视频标题和用户评分,以及代表视频截图的虚线框。 当用户浏览视频标题列表时, 视频缩略图就逐渐将虚线框替代掉了。

如果数据可以自然地分为几类,就提供一个 scope bar。Scope bar 包括最多四个 scope按钮,每个代表一类。例如,Mail 提供的 Scope bar 使得用户可以只关注"收" "发""标题" ,或者在全域内搜索。Scope bar 帮助用户将搜索聚焦,显著地减少结果数量。欲知详情,详见"范围栏(Scope bar) " 。