表视图用语显示大量的较为规范的数据,如通讯录,歌曲列表等。用户可以从中进行选择,或者轻拍对应项以显示更多的信息。

这章主要讲解表视图的创建,内容填充,设置单元格,响应表视图,创建分组表等方面的内容。

 

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,说明此表单元是不可以重用的。

 

示例: