表视图用语显示大量的较为规范的数据,如通讯录,歌曲列表等。用户可以从中进行选择,或者轻拍对应项以显示更多的信息。
这章主要讲解表视图的创建,内容填充,设置单元格,响应表视图,创建分组表等方面的内容。
1.关于动态创建表视图:
语法形式如下:
init(frame frame:CGRect,style style:UITableViewStyle)
其中,参数frame用来指定表视图的框架;参数style用来指定表视图的风格。表视图的风格有两种:一种是Plain(不分组表视图),另一种是Grouped(分组表视图)。
eg:
let tableView = UITableView(frame:CGRectMake(x,y,h,w),style:.Plain)
self.view.addSubview(tableView)
效果图:
注意:由于创建的是默认的表视图,所有init(frame:style:)方法可以使用init(frame:)方法来替换,其语法形式如下。
init(frame frane:CGRect)
其中,参数frame用来表视图的框架。那么此示例中创建表视图的代码就可以简化为:
let tableView = UITableView(frame:CGRectMake(x,y,h,w))
2.内容填充
用户可以在表中填充字符串,也可以填充图片,还可以添加页眉页脚等。本节将主要讲解表视图的内容填充。
2.1填充内容的步骤
要想在表视图中进行字符串,图片等内容的填充,必须要实现以下3个步骤。
1.设置表视图的节数
所谓节数,是对分组表所说的,意思是分组表中要分为几组,对应的每一组就是一个节;
注意:在一个分组表中,最开始的节称为第0节。
一般要设置节数,需要使用numberOfSectionsInTableView(_:)方法,其语法形式如下。
optional func numberOfSectionsInTableView(_ tableView:UITableView)->Int
注意:一般不对此方法进行设置,默认为是只有1节的,也就是不分组的表视图。
2.设置表视图的行数
知道了表视图的节数后,就可以设置在表视图中要填充的行数,一般使用tableView(_:numberOfRowsInsection:) 方法对表视图的行数进行设置,其语法形式如下。
func tableView(_ tableView:UITableView,numberOfRowsInSection Section:Int)->Int
其中,参数tableView用来指定表视图;参数Section用来指定索引号,此索引号的功能是识别表视图中的节。
3.插入单元格
在将表视图的节数和行数都设置好之后,就可以插入表单元了。UITableViewCell称为表单元。在表视图中,每一行都是一个表单元的实例。
所有的表单元就构成了一个表。如果没有表单元,那么表就是一个空白。要实现在表视图特定的位置插入一个表单元,就要使用tableView(_:cellForRowAtIndexPath:)方法,其语法形式如下。
func tableView(_ tableView:UITableView,cellForRowAtIndexPath indexPath:NSIndexPath)->UITableViewCell
其中,参数tableView用来指定表视图;参数indexPath用来指定一个索引路径,指定表视图中的行。
在tableView(_:cellForRowAtIndexPath:)方法中,要插入单元格,首先要对其进行创建,其语法形式如下。
init(style:reuseIdentifier:)
其中,参数style用来指定表单元的显示风格。风格包括Default,Value1,Value2,Subtitle;参数reuseIdentifier是一个字符串,用于识别它是否可以重用,如果为nil,说明此表单元是不可以重用的。
示例: