(1.概述部分)《列表视图编程指南》(Table View Programming Guide for iOS)

关于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。本文档提到了分页控制器和导航控制器,都可以将列表视图作为自己的子视图。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容