UITableView整理

Posted alexZeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UITableView整理相关的知识,希望对你有一定的参考价值。

基本介绍

 UITableView在 ios 开发中可以说是使用最广泛的控件,它有两种风格:UITableViewStylePlainUITableViewStyleGrouped。这两者操作起来其实并没有本质区别,只是后者按分组样式显示前者按照普通样式显示而已。

在UITableView中数据只有行的概念,并没有列的概念,每行数据都是一个UITableViewCell,其内部有一个UIView控件(contentView,作为其他元素的父控件)、两个UILable控件(textLabel、detailTextLabel)、一个UIImage控件(imageView),分别用于容器、显示内容、详情和图片。

UITableViewCell提供有四种样式,分别为

UITableViewCellStyleDefault
左侧显示textLabel(不显示detailTextLabel),imageView可选(显示在最左边)

UITableViewCellStyleValue1

左侧显示textLabel、右侧显示detailTextLabel(默认蓝色),imageView可选(显示在最左边)

UITableViewCellStyleValue2

左侧依次显示textLabel(默认蓝色)和detailTextLabel,imageView可选(显示在最左边)

UITableViewCellStyleSubtitle

左上方显示textLabel,左下方显示detailTextLabel(默认灰色),imageView可选(显示在最左边)

UITableView需要实现UITableViewDataSource和UITableViewDelegate 协议,来实现和外界数据和操作的交互。

数据源

UITableViewDataSource共有三类方法:

(1)配置表视图

这类方法用来计算 section 和 cell 的数量、section 索引等,以及设置表视图中的 cell视图、header/footer 的标题。

根据数据源方法生成单元格的顺序是:计算分组数——计算每组行数——生成分组索引——生成单元格

生成单元格的方法并不是一次全部调用,而是只会生产当前显示在界面上的单元格,当用户滚动操作时再显示其他单元格

(2)插入或修改行

设置是否可以编辑指定的行,以及设置相应行的编辑样式。

(3)重新排序

设置能否移动指定的行,以及确定将要移动到的位置。

代理

UITableViewDelegate共有九类方法:

(1)设置表视图的行

包括设置行高、预计的行高、行缩进,以及在即将显示行前要进行的绘制工作。

(2)管理Accessory Views

包括设置editActions(表格行侧滑可以执行的操作)、accessoryButton点击事件的处理。

(3)管理表格行的选择

包括willSelect(将要选中)、didSelect(已经选中)、willDeselect(将要放弃选中)、didDeslect(放弃选中)四种状态,可以设置在选择的不同状态,进行不同的操作。

(4)修改 section 的 header 和 footer

包括设置 header 和 footer 的高度、预计高度、视图,以及将要显示时执行的操作。

(5)编辑表视图的行

包括willBeginEditing(将要开始编辑)和 didEndEditing(结束编辑)两种状态,以及设置行的编辑样式、删除确认按钮的标题、在编辑时是否缩进。

(6)排序

这个方法和数据源方法中的那个的不同之处在于:它返回的是目标位置的 indexPath

(7)追踪视图的移除

包括设置结束 cell、header 和 footer 显示后执行的操作三种。

(8)行内容的复制粘贴

包括是否显示编辑菜单(默认不显示)、是否执行动作和实行哪种操作三种。

(9)行的高亮显示

包括shouldHighlight、didHighlight和didUnhighlight三种。

(10)focus

包括能否突出显示某行、应该更新突出显示、已更新显示某行、突出显示的行的 indexPath 四种。

性能优化

在UITableView内部有一个缓存池,初始化时使用initWithStyle:(UITableViewCellStyle) reuseIdentifier:(NSString *)方法指定一个可重用标识,就可以将这个cell放到缓存池。然后在使用时使用指定的标识去缓存池中取得对应的cell然后修改cell内容即可。

UITableViewCell

 

UITableViewCell是构建一个UITableView的基础,在UITableViewCell内部有一个UIView控件作为其他内容的容器,它上面有一个UIImageView和两个UILabel,通过UITableViewCellStyle属性可以对其样式进行控制。其结构如下:

 

技术分享

 

有时候我们会发现很多UITableViewCell右侧可以显示不同的图标,在iOS中称之为访问器,点击可以触发不同的事件,例如设置功能:

技术分享

 

以上是关于UITableView整理的主要内容,如果未能解决你的问题,请参考以下文章

SWIFT UITableView的基本用法

iOS开发UI篇—UITableview控件基本使用

UITableView的基本使用方法

UITableView 优化总结

iOS开发UI篇—UITableview控件基本使

Xcode,UITableView 上未显示按钮(基本级别)