尝试阅读《Human Interface Guidelines》原文翻译学习iOS设计指南。
table通过单行的滚动页面来显示数据,这些行可以被划分为节或组。使用table可以使用列表的形式展示大量或小量信息。通常table适合以文本为基础的内容,并且作为split view一侧导航的形式,相关内容则显示在相反的一侧。
iOS提供了三种风格的table:plain, grouped, and inset grouped。
Plain table
Plain table可以将行分隔为带标签的部分,并且可选的索引可以垂直显示在表的右边缘。 页眉可以出现在节中的第一个项目之前,页脚可以出现在最后一个项目之后。
Grouped table
行以组的形式呈现,组的前面可以是页眉,后面是页脚。 此类型的表始终至少包含一个组,每个组始终至少包含一行。 分组表不包括索引。
Inset grouped table
行以具有圆角的组的形式显示,并从父视图的边缘插入(如上图右侧所示)。 此类型的表始终包含至少一个组,每个组始终包含至少一行,并且可以在前面加上页眉和页脚。插入的分组表不包括索引。 嵌入式分组样式在规则宽度的环境中工作效果最好。 由于紧凑的环境中空间较小,嵌入分组表可能会导致文本换行,特别是在内容本地化时。
认真考虑表的宽度
宽度窄的表格可能会导致内容的截断,使得表格很难阅读并且需要快速扫描。宽的表格也很难阅读和扫描,而且会占用内容的空间。
开始快速显示表格内容
在显示某些内容之前,不要等待大量的表内容加载。 立即用文本数据填充屏幕上的行,并在可用时显示更复杂的数据(如图像)。 这种技术可以马上给人们提供有用的信息,并提高你的应用程序的响应能力。 在某些情况下,显示陈旧的旧数据可能有意义,直到新的数据到来。
在加载内容时传递进度
如果一个表格加载需要时间,那么通过进度条或旋转的活动指示器告知用户app仍然在运行。
保持内容的及时更新
通过定期更新表格的内容来呈现新的数据,不要改变滚动的位置。相反,将内容添加在表格的开头或结尾,让人们随时可以滚动。有些app会在有数据更新的时候显示一个指示器,提供跳转到新数据的控件。刷新控件同样能够起作用,用户可以通过控件在任何时候进行手动刷新。
避免将索引与包含右对其元素的表行组合
引是通过执行大的滑动手势来控制的。 如果附近还有其他交互元素,比如显示指示器,那么当一个手势出现并且错误的元素可能被激活时,可能很难辨别用户的意图。
Table Rows
可以使用标准的表格单元央视来定义内容在表格行中显示的方式。
基本(默认值)
行左侧有一个可选的图像,后跟一个左对齐的标题。 对于显示不需要补充信息的项目,这是一个很好的选择。
字幕
一行是左对齐标题,下一行是左对齐副标题。 这种风格适用于行在视觉上相似的表。 附加的字幕有助于区分行与行之间的不同。
右边的细节
在同一行上带有右对齐副标题的左对齐标题。
左边细节
一个右对齐的标题,后面是同一行上的左对齐的副标题。
所有标准的表格同样逊于图形元素,如checkmark、disclosure indicator。当然,添加这些元素会减少标题和字幕的可用空间。
保持文本简洁,以避免裁剪
被删节的单词和短语很难扫描和译解。 文本截断在所有表单元格样式中都是自动的,但是它或多或少会出现问题,这取决于您使用的单元格样式和发生截断的位置。
考虑为 Delete 按钮使用自定义标题
如果一行支持删除,并且有助于提供清晰性,那么将系统提供的 Delete 标题替换为自定义标题。
在做出选择时提供反馈
人们希望当内容被点击时,一行内容会被简短地突出显示。 然后,人们期望出现一个新视图或更改某些内容,比如出现一个复选标记,表明已经进行了选择。
为非标准表行设计自定义表单元格样式
标准样式非常适合在各种常见场景中使用,但是有些内容或整个应用程序设计可能需要一个高度自定义的表外观。 要了解如何创建自己的单元格,请参阅 iOS 表视图编程指南中的自定义单元格。
END.THANKS FOR YOUR READING~
如有不当,还请多多指教~