关于iOS应用中的列表视图
列表视图集多种功能于一身,经常能够在iOS应用中见到。列表视图通过一个可滚动的,含有多行(row
)的清单来展现数据,同时这个清单也可以被划分为多节(section
)。
列表视图有许多功用:
允许用户在具有层级结构的数据中进行导航
展示一组具有索引的条目
利用多个具有明显视觉区别的组,展示详细信息和控件
展示一组可继续选择的选项
列表视图只有一列,并且只允许垂直滚动。节有行组成(一个或多个)。每节可以拥有一个题头(header
)和一个注脚(footer
),可以显示文字或图片。然而,许多列表视图只有一节,没有可见的题头或注脚。在代码中,UIKit框架通过索引来识别特定的行和节。节的编号,由上至下,从0开始,一直到n - 1(n是列表视图中节的数量),在每个节中行的编号也是由上至下,从0开始一直到n - 1(n是一个节中行的数量)。列表视图还可以拥有自己的题头和注脚,这点和节是相互独立的;列表的题头在第一节第一行的上方显示,列表的注脚在最后一节最后一行的下方显示。
概览
列表视图是UITableView
类的实例对象,具有两种基本风格可选,plain
(平实)或grouped
(聚合)。平实风格的列表视图是类似于一个完整的清单形式;聚合风格的列表视图的节与节之间有着明显的视觉分割。列表视图还会有一个数据源,还可能有自己的代理对象。数据源对象为其各节各行提供所需显示的数据。代理对象可以定制列表视图的外观和行为。
相关章节:列表视图风格和附件视图
列表视图利用单元格绘制行
列表视图利用单元格绘制行——单元格就是UITableViewCell
对象。单元格是视图,可以显示文字,图像或其他内容。它们在被选中和未被选中时会有不同的背景。单元格还可以有附件视图,附件视图的功能是作为选中或设置的提示控件。
UIKit框架定义了4种标准的单元格风格,每个单元格中都有三个默认内容:主文本标签,细节文本标签,图像,这四种风格中它们的布局不尽相同。也可以定义自己的单元格,从而让列表视图拥有与众不同的显示效果。
当在故事面板编辑器中设置列表视图的特性时,要在两种单元格内容类中进行选择:static cells
(静态单元格)或dynamic prototypes
(动态原型)。
静态单元格。使用静态单元格来设计拥有固定行数的列表,每一行都拥有自己的布局。如果在设计指出就对列表的整个外观有明确的概念,那么就使用静态单元格,不管它看是的信息内容是什么。
动态原型。使用动态原型设计一个单元格,然后将其作为列表中其他单元格的模版。当列表中多个单元格都使用一种布局显示信息时,使用动态原型。动态原型的内容在运行时由数据源提供,单元格数量不限。
相关章节:列表视图风格和附件视图,窥探单元格
响应被选中的行
当用户选择一行(通过点击),列表视图的代理会收到相关消息。被选中的行和节的索引会被传递给代理。代理使用这些信息在拥有的数据结构(数据源)中找到相应的条目。这个条目在数据结构中可能处于中间位置,或者只是数据结构的节点之一。如果条目处于中间位置,应用会继续显示一个新的列表视图。如果条目是一个节点,应用会利用聚合风格的列表视图或其他类型的视图来显示被选中条目的细节信息。
在罗列出一组选项的列表视图中,单击行会选中其所关联的选项。没有信息会被显示。
相关章节:利用列表视图导航数据结构,管理对行的选中
在编辑模式下添加,删除,和对行进行排序
列表视图可以进入编辑模式,此时用户可以插入,删除,或移动行在列表中的位置。在编辑模式下,绿色加号代码添加行,行左侧末尾的红色建好代码删除行。如果用户点击删除控件,或者在某些列表中横向滑动行,会显示出一个红色的删除按钮,提示用户删除行。可以利用每一行右侧末尾的一个由多条横线组成的图片来对行进行排序。一旦推出编辑模式,添加,删除和排序的控件都会消失。
当用户视图添加,删除或对行排序时,列表视图会向其数据源和代理发送一个消息序列,以便它们可以应对这些操作。
使用故事面板创建列表视图
最简单和最受推荐的创建和管理列表视图的方法是在故事面板中使用自定义的UITableViewController
对象。如果应用的大部分显示工作都是基于列表视图,那么使用Xcode中的Master-Detail
模版创建项目。这个模版包含了一个简单的自定义UITableViewController
对象,以及一个用来展示交互界面的故事面板,其中包括自定义的视图控制器和其列表视图。在故事面板编辑器中,为列表视图选择一个风格,然后设计它的内容。
在运行时,UITableViewController
会创建列表视图,为其分配代理和数据源。一旦被创建,列表视图会向其数据源请求节的数量,每节中行的数量,以及用来绘制行的单元格。数据源管理着用来填充列表视图行和节的数据。
相关章节:利用列表视图在数据结构中导航,创建和配置列表视图
阅读前提
在阅读本文档之前,读者应该先阅读Start Developing iOS Apps Today,以便对iOS应用开发的过程有初步的了解。然后阅读View Controller Programming Guide以便对视图控制器和故事面板有完整的了解。最后,为了能够在使用使用列表视图方面有上手经验,请阅读教程Your Second iOS App: Storyboards。
本介绍中的信息以及列表视图风格和附件视图中的信息是对列表视图在*** iOS Human Interface Guidelines***中的相关信息的总结。读者可以在本文档的后续章节中找到完整的关于列表视图风格,特性,使用方法的信息。
相关拓展
在以下示例代码中可以找到列表视图的相关实现代码:
- SimpleDrillDown
- Table View Animations and Gestures
关于如何使用UIKit中提供的标准容器视图的信息,详见View Controller Catalog for iOS。本文档提到了分页控制器和导航控制器,都可以将列表视图作为自己的子视图。