iOS 应用中的表视图(Table View)(译)

原文地址:About Table Views in iOS Apps

表视图是在iOS应用中最常见到的用户接口对象。表视图将数据以多行可滑动列表的形式展现,并且可以以章节的形式展示。

表示图有很多目的:

  • 让用户通过分等级的结构浏览数据
  • 呈现一个带索引的列表
  • 通过在视觉上清晰的分组来展示详细信息和控制
  • 为多选项展现一个可选列表

图1-1 不同种类的表视图

表视图只有一列,并且只允许垂直滑动。它由多个按章节分组的行组成。每一个章节都可以包含一个头和脚,用来显示文字或者图片。不过,大部分表视图只包含一个章节,并且没有可见的头和脚。以编程的角度讲,UIKit framework 通过章节和每行的索引数来识别它们:章节从表示图的头到底部按照0到n-1编号;在一个章节中,行编号从0到n-1。表视图可以拥有它自己的头和脚,有别于章节的头和脚;表的头出现在以一个章节的第一行之前,表的脚出现在最后一个章节的最后一行之后。

概览

一个表视图就是UITableView类的两个基本风格之一的一个实例,plain 或者 grouped。plain 表视图是一个完整的列表;grouped 表视图有清晰直观的sections。表视图拥有一个数据源,和一个可选的委托(data source and might have a delegate)。数据源对象提供构成表视图的章节和行的数据。委托对象定制表视图的外观和行为。

 

表视图通过Cells绘制它们的行:

表视图使用cells绘制他的可见行,这个cell就是 UITableViewCell 对象。Cells 是也是视图(View),可以显示文字,图像和其他种类的内容。它们可以拥有背景视图包括普通状态和被选中状态。Cells 也可以拥有附属的视图,

UIKit 框架定义了4种基本的cell风格,每一种都对三种默认的内容元素有它自己的布局,这三种基本内容元素是:main label,detail label 和 image。你也可以为自己的应用的表视图创建自定义的cell来获得与众不同的风格。当你通过 storyboard 编辑器配置表视图的属性时,你可以选择两种类型的单元格的内容:静态cell 和动态原型。

  • 静态cells:使用静态cells设计一个固定行数的表,每一个cell都可以有它自己不同的布局。Use static cells when you know what the table looks like at design time, regardless of the specific information it displays.
  • 动态原型:使用动态原型设计一个cell 然后使用它作为标中其他cell的模版。在表中使用多个拥有同样布局显示信息的cell时,使用动态原型。动态原型的内容由数据源在运行时动态管理,cell的数量也是变化的。

 

行被选中后的响应(Responding to Selections of Rows)

当用户选择一行(通过点击)时,表视图通过一个消息通知它的委托。该行的所在章节的索引数以及该行在章节中的索引数会传递给表视图的委托。委托使用这个信息来定位应用数据模型中对应的项。这个项或许只是个中间项,也可能是。如果这个项是处于中间的层次,应用会显示一个新的表视图。如果这个项是一个叶节点,应用会以分组式的talbe view或者其他样式的view显示细节。

在表视图列出的一系列的选项,简单的点击某一行的相关选项。没有后续的数据视图被显示。

 

在编辑模式中,允许增加,删除和重排列行:

表视图可以进入编辑模式,该模式允许用户插入或者删除行,或者在当前表中重新安置这些行。在编辑模式中,行得左边会显示增加或者删除按钮,增加是绿色加号,删除是红色减号。如果用户点击删除控件,或者在某些表示图中横向清扫行出现一个红色删除按钮,这些都提示用户删除该行。可以被重定位的行,在右部边缘会显示由几条平行线组成的图像。当表视图推出编辑模式后,增加删除和重排列控件都会消失。

当用户试图编辑表示图的行时,表示图会给它自己的数据源和托管发送一些列的消息,好让他们能管管理用户的编辑操作。

 

通过stroyboard创建表视图:

最容易,也是最受推荐的创建和管理表视图的方法就是,在storyboard中使用自定义的UITableViewControllor对象。如果你的应用程序很大程度上是基于表视图,推荐你使用Master-Detail应用程序模板来创建你的Xcode项目。这个模板包含一个初始自定义的UITabaleViewController类和一个该场景的 storyboard(在 user interface,包含这个自定义视图空间和它的表视图)。 在storyboard 编辑器中,选择表示图两种风格中的一种,并编辑它的内容。

在运行时刻,UITableViewControllo 创建这个表视图,并且把自己注册成为它的数据源和delegate。当表示图被创建后,立即就会向数据源请求section 和 row 的数量,表视图的cell用来绘制每一行。数据源管理用来填充表视图的section 和 row的程序数据。

(转载请标明出处:点我

posted on 2013-07-23 19:27  隔热  阅读(498)  评论(0编辑  收藏  举报