(2.Table View Styles and Accessory Views)《列表视图编程指南》(Table View Programming Guide for iOS)

列表视图风格和附件视图

根据使用目的不同,列表视图可以具有不同的风格。除此之外,UIKit框架为用于绘制列表视图行的单元格也提供了多个标准风格。它还提供了标准附件视图(即控件),可以在单元格中使用。

列表视图风格

列表视图的两个主要风格分别是plaingrouped(平实和聚合)。这两个风格在外观上有着明显区别。

平实风格

平实风格的列表视图所显示的行横向贯穿屏幕,背景为乳白色(见图1-1)。平实风格的列表至少有一个或多个节,每节有一行甚至多行,每个节都可以有自己的题头和注脚。(题头或注脚都可以有自定义视图,例如包含一副图像)。当用户滚动一个拥有多行的节时,节的题头会浮动在列表视图上部,而注脚浮动在底部。

有一种平时风格列表的变种,使用索引标记节,实现快速导航;图1-2显示了一个这种类型的例子,被称为indexed list(索引列表)。索引在列表的右端依次向下排布。索引中的条目对节的题头对应。点击一个索引条目,会让列表视图自动滚动至对应的节。例如,节的题头可能是两个字母的州名缩写,而节中的行可以是这个州的所有城市;点击索引的某个条目,会显示所选州的所有城市。在索引列表中的行不应该有disclosure indicator(扩展指示器)按钮,因为这干扰列表。

最简单的列表视图类型是选择列表(见图1-3)。选择列表是一个平实风格的列表视图,显示了一组选项,读者可以选择。可以将选择限制单选,也可以多选。选择列表会将被选中的行用对勾标记(见图1-3)。

聚合风格

聚合风格的列表视图显示一组信息,但将相关的行聚合在有视觉分隔的多个节中。如图1-4所示,每节都是圆角觉醒,而且默认情况下有蓝灰背景的衬托。每节可以用文字或图像作为题头或注脚,以便对节的内容提供一些背景信息或总结。聚合风格的列表最适合用于显示数据结构中的最细节信息。它使得多个不同类的独立信息聚合在一起,并且为这些信息的组合提供语境信息,以便读者能够快速理解。

聚合列表中的节的题头和注脚的相对位置和大小如图1-5所示。

在iPad设备上,当列表视图本身很宽时,聚合视图会自动获得更宽的边距。

单元格的标准风格

除了为列表视图提供两个默认风格,UIKit框架为单元格定义了4个风格,这些单元格可以用来绘制列表的行。可以自定义不同外观的单元格,但是,这4个默认的单元格风格已经可以满足大多数需要。用标准单元格风格或者自定义单元格风格创建列表视图的技术参见窥探单元格。

默认的列表视图行的的风格很简答,只有一行遍体和一个可选的图像(图1-6)。这个风格被定义为UITableViewCellStyleDefault常量。

图1-7显示的单元格风格将主标题左对齐,并在下方放置了一个灰色的次标题。另外还可以在默认位置上放置一副图像。这个风格被定义为UITableViewCellStyleSubtitle常量。

图1-8实现的单元格风格左对齐主标题。另外还放置了一个蓝色次标题,并将其右对齐。不能使用图像。这个风格适合用在应用的设置里,子标题可以用来显示设置当前的选项。它被定义为UITableViewCellStyleValue1常量。

图1-9显示的单元格风格将主标题设置为蓝色,并将其自左侧缩进的某个点开始右对齐。子标题从这个点向右开始的一段距离内左对齐。这个风格不能放置图像。它被用在电话应用中,被定义为UITableViewCellStyleValue2常量。

附件视图

有三类标准附件视图(根据它们附件类型常量显示):

  • Disclosure indicator扩展指示器(UITableViewCellAccessoryDisclosureIndicator):当选中一个单元格会跳转至显示下一个数据结构层级的列表视图时,使用扩展指示器。

  • Detail disclosure button细节扩展按钮(UITableViewCellAccessoryDetailDisclosureButton):当选中一个单元格会跳转至显示这个条目饿细节信息的视图时(不一定还是列表视图),使用细节扩展按钮。

  • Checkmark对勾(UITableViewCellAccessoryCheckmark):当触摸行会导致选中这个条目时,使用对勾。这种列表视图被称为选择列表,类似于弹出列表。选择列表可以单选,也可多选,同时使用多个对勾。

除了标准的福建视图,也可以指定控件(例如,开关)或自定义视图,将它们作为附件视图使用。

你可能感兴趣的:((2.Table View Styles and Accessory Views)《列表视图编程指南》(Table View Programming Guide for iOS))