iOS UITableView(一)布局介绍

简介

UITableView是iOS开发中使用较为频繁的视图。在很多地方都用到了它来展示数据,比如微信通讯录和新闻列表等。
在UITableView中,分节、分组和索引等功能让我们展示的数据更加规整,更有条理。


1.概述

本节将主要介绍UITableView中的概念、相关类、表视图分类、单元格组成和样式,以及表视图的两个协议——UITableViewDelegate委托和UITableViewDataSource数据源。

1.1 UITableView的组成

iOS UITableView(一)布局介绍_第1张图片
1. table header view: UITableView最上边的视图,用于展示表视图信息,例如表视图刷新信息
2. table footer view: UITableView最下边的视图,也用于展示表视图信息,例如表视图分页时显示”更多”等信息
3. cell: 它是组成表视图每一行的单位视图
4. section:由多个cell组成,由section header和section footer
section header: 描述section的信息,文字左对齐
section footer: 也可描述section的信息和声明,文字左对齐

1.2 UITableView相关类

iOS UITableView(一)布局介绍_第2张图片
1. UITableView继承自UIScrollView,且有两个协议,UITableViewDelegate委托协议和UITableViewDataSource数据源协议。
2. 并且包含很多其他的类,UITableViewCell类用于为cell提供视图
3. UITableController类是UITableView控制器
4. UITableViewHeaderFooterView类用于为section header和section footer提供视图

1.3 UITableView分类

iOS中的UITableView主要分为Plain(普通视图)和Grouped(分组视图)
iOS UITableView(一)布局介绍_第3张图片
1. Plain:主要用于动态表,动态表一般在单元格数目未知的情况下使用
2. Grouped:一般用于静态表,用于界面布局,将UITableView分成很多section,而section又由一些类似的cell组成

1.4 cell的组成和样式

cell由图标、标题和扩展视图等组成
iOS UITableView(一)布局介绍_第4张图片
单元格的样式我们也可以根据需要进行选择,图标、标题和副标题可以有选择地设置、扩展视图可以内置或者自定义
内置的扩展视图是在枚举类型UITableViewCellAccessoryType中定义的,如下表所示

Objective-C枚举成员 说明
UITableViewCellAccessoryNone 无扩展图标
UITableViewCellAccessoryDisclosureIndicator 扩展指示器,触摸该图标将切换到下一级UITableView,图标为>
UITableViewCellAccessoryDetailDisclosureButton 细节展示按钮,触摸该cell时,UITableView会以View的方式先手当前单元格的更多详细信息,图标为!
UITableViewCellAccessoryCheckmark 选中标志,表示该行被选中,图标为√

iOS API提供的cell样式是在枚举类型UITableViewCellStyle中定义的,如下表所示

Objective-C枚举成员 说明
UITableViewCellStyleDefault 默认样式,只有图标和主标题
UITableViewCellStyleSubtitle Subtitle样式,有图标、主标题和副标题,副标题在主标题下面
UITableViewCellStyleValue1 Value1样式,有主标题和副标题,主标题左对齐,副标题右对齐,可以有图标
UITableViewCellStyleValue2 Value2样式,有主标题和副标题,主标题和副标题居中对齐,无图标

1.5数据源协议与委托协议

1.UITableViewDataSource协议主要用来为UITableView提供数据,设置section个数,cell个数,section的header标题和footer标题等,必须实现以下两个方法

方法 返回类型 说明
tableView:numberOfRowsInSection: Int 返回某个节中的行数
tableView:cellForRowAtIndexPath UITableViewCell 为cell提供数据

2. UITableViewDelegate协议主要用来设置sction的header和footer标题,响应动作事件

你可能感兴趣的:(iOS)