Xamarin.iOS 中的表部件和功能

UITableView 可以采用“分组”或“普通”样式,由以下部分组成:

以下屏幕截图显示了分区行、标头、页脚、编辑控件和索引的显示方式。

以下屏幕截图展示了分区行、页眉、页脚、编辑控件和索引的显示方式

下面更详细地介绍了这些部分:

节标头

可以选择将单元格分组为多个分区,用自定义标头和/或页脚进行标记。 可以使用字符串值设置标头,也可以提供自定义视图以允许不同的布局或样式。

单元

单元格是表格的主要用户界面元素。 如果正确实现,单元格可重复使用,以提高内存效率。 有四种内置单元格样式,可以使用代码或在使用 Storyboard 时使用 Designer 创建自己的自定义单元格。

可以使用字符串值设置可选分区页脚,也可以提供自定义视图以允许不同的布局或样式。 可以独立设置分区标头和页脚。

Index

索引沿着表格的右边缘显示为一条字符。 触摸或拖动索引可加速滚动到表格的该部分。 索引是可选的,但建议使用它来帮助浏览较长的列表。 索引通常不与分组样式一起使用。

编辑模式

有几种不同的编辑功能可用:

  • 轻扫以删除单个单元格。
  • 进入编辑模式以显示每行上的删除按钮
  • 进入编辑模式以显示重新排序图柄。
  • 插入新单元格(带动画)。

本文档的其余部分展示了如何使用 Xamarin.iOS 实现所有这些 UITableView 功能。

类概述

用于显示表格视图的主要类如下所示:

用于显示表视图的主要类如下所示

每个类的用途如下所述:

  • UITableView - 包含滚动容器内的单元格集合的视图。 在 iPhone 应用中,表格视图通常使用整个屏幕,但在 iPad 上可能作为较大视图的一部分存在(或以弹出窗口的形式显示)。
  • UITableViewCell - 表示表视图中单个单元格(或行)的视图。 有四种内置单元格类型,还可以用 C# 或 iOS Designer 创建自定义单元格。
  • UITableViewSource - Xamarin.iOS 独有的抽象类,提供显示表格所需的所有方法,包括行计数、返回每行的单元格视图、处理行选择和许多其他可选功能。 必须对其进行子类化才能使 UITableView 正常工作
  • NSIndexPath - 包含唯一标识表格中单元格位置的行和分区属性
  • UITableViewController - 一个随时可用的 UIViewController,具有硬编码的 UITableView 作为其视图,并可通过 TableView 属性进行访问
  • UIViewController - 如果表格没有占据整个屏幕,则可以将 UITableView 添加到任何 UIViewController,并相应地设置其框架

UITableViewSource 取代了以下两个类,这两个类在 Xamarin.iOS 中仍然可用,但通常不是必需的:

  • UITableViewDataSource - 在 Xamarin.iOS 中作为抽象类建模的 Objective-C 协议。 必须对其进行子类化,以便为表格中的每个单元格提供视图,并提供有关表格中的标头、页脚以及行数和分区数的信息。
  • UITableViewDelegate - 在 Xamarin.iOS 中作为类建模的 Objective-C 协议。 处理选择、编辑功能和其他可选表格功能。

在本文档中,所有示例都使用 UITableViewSource 并忽略这两个类。 在此处提及它们是因为 Apple 文档中的任何 Objective-C 示例都会引用它们,因此了解它们的作用非常有用(并且你可以改用 Xamarin.iOS 的 UITableViewSource)。