表视图只有一列,只允许垂直滚动。 它由行(rows)组成的部(section)组成。 每个部分都可以有一个标题(header)和一个显示文本或图像的页脚(fotter)。 但是,许多表视图只有一个部分没有可见的页眉或页脚。 以编程方式,UIKit框架通过索引号识别行和部分:部分从表视图的顶部到底部编号为0到n - 1; 行在一个段内编号为0到n-1。 表视图可以有自己的页眉和页脚,与任何部分不同; 表标题出现在第一个部分的第一行之前,表页脚出现在最后一部分的最后一行之后。
At a glance
列表视图是UITableview的实例,两个基础样式中的其中一个:plain或者grouped。Plain是没有分组的列表;grouped是视觉上有区分的。�通常还会给列表视图设置一个data source对象数据源来提供数据。Delegate对象来自定义外观和行为。
Table Views Draw Their Rows Using Cells
列表视图用单元格来显示行,也就是UITableViewCell对象。单元格是显示各种内容的载体。对于常态和被选中状态可以设置不同的背景。单元格也可以有附属视图,通常用作选中和设置选项。
UIKit框架定义了四种标准的cell样式,每种都有各自的布局和三个默认的元件:主标签,细节标签和图片。�也可以创建自定义单元格。
当在storyboard编辑器中配置列表视图的时候,你需要在两种不同的单元格内容中选取:静态或者动态。
静态单元格。固定行数,每行有各自的布局。设计时候的数据不变了就是将来以后要展示的数据选用这种样式。
动态型。动态型的单元格是设计一个单元格然后把这个单元格作为模版来给表中其它单元格用。当多个单元格用同样的布局来显示的时候使用这种单元格原型。动态原型内容由运行时的数据源管理,具有任意数量的单元格。
Responding to Selections of Rows
当用户选择一行(通过点击它)时,通过消息通知表视图的代理。 代理将传递该行的行索引和行所在的部分。它使用此信息来定位应用程序数据模型中的相应项目。 该项目可能位于层次结构中的中间层,也可能是层次结构中的“叶节点”,如果项目处于中间层次,应用程序将显示一个新的表视图,如果项目是叶节点 ,应用程序会以分组样式表视图或其他类型的视图显示有关所选项目的详细信息。
在列表中列出一系列选项的表格视图中,点击一行只需选择相关选项即可。 不显示数据的后续视图。
Related Chapters: Navigating a Data Hierarchy with Table Views, Managing Selections
In Editing Mode You Can Add, Delete, and Reorder Rows
表视图可以进入编辑模式,用户可以在该模式中插入或删除行,或者在表中重新定位它们。 在编辑模式下,标记为插入或删除的行在行的左边缘附近显示绿色加号(插入)或红色减号(删除)。 如果用户触摸删除控件,或者在某些表视图中,在一行中滑动,则会出现一个红色的“删除”按钮,提示用户删除该行。 可重新定位的行显示(靠近其右边缘)由几条水平线组成的图像。 当表视图离开编辑模式时,插入,删除和重新排序控件消失。
当用户尝试插入,删除或重新排序行时,表视图会向其数据源发送一系列消息并进行委托,以便它们可以管理这些操作。
Related Chapters: Inserting and Deleting Rows and Sections, Managing the Reordering of Rows
To Create a Table View, Use a Storyboard
创建和管理表视图的最简单和推荐的方法是使用自定义 UITableViewController
对象在故事板。如果您的应用程序主要基于表视图,请使用主 - 详细应用程序模板创建Xcode项目。此模板包含初始自定义UITableViewController
类和用户界面中场景的故事板,包括自定义视图控制器及其表视图。在故事板编辑器中,为此表视图选择两种样式之一,并设计其内容。
在运行时,UITableViewController
创建表视图并将其分配为委托和数据源。创建之后,表视图立即向其数据源询问部分数量,每个部分中的行数以及用于绘制每一行的表视图单元格。数据源管理用于填充表视图的部分和行的应用程序数据。
Related Chapters: Navigating a Data Hierarchy with Table Views, Creating and Configuring a Table View
Prerequisites
在阅读本文档之前,您应该阅读“开始开发iOS Apps Today”,以了解开发iOS应用程序的基本过程。 然后阅读“用于iOS的View Controller编程指南”,以全面了解视图控制器和故事板。 最后,要在故事板中使用表格视图获得宝贵的实践经验,请阅读“第二个iOS应用程序:故事板”教程。
本介绍和表视图样式和附件视图中提供的信息总结了iOS人机接口指南中提供的表视图的说明性信息。 在“内容视图”一章中,您可以找到表视图的样式和特征以及其推荐用途的完整说明。
See Also
您将发现以下示例代码项目是您自己的表视图实现的有意义的模型:
SimpleDrillDown project
有关如何使用UIKit提供的标准容器视图控制器的指导,请参阅 [View Controller Catalog for iOS](https://developer.apple.com/library/content/documentation/WindowsViews/Conceptual/ViewControllerCatalog/Introduction.html#// apple_ref/ DOC/ UID/ TP40011313)。 本文档描述了分割视图控制器和导航控制器,它们都可以包含表视图控制器作为子代。