我想使用UITableView做一个列表,然后里面只放两三件不一样的内容,即每个Cell显示不同的内容。
将所需要显示的Cell指定上Identifier,使用switch语句来控制每个Cell显示的内容。
创建一个新项目,由于我这里只是实验项目,所以我取了一个名为T1的Single View Application。
这里的实验对象是UITableView,所以我将原来默认的Storyboard删除掉,得新拖了一个TableViewController到Storyboard去。
同时修改ViewController.swift这个文件,将其继续的父类改成UITableViewController,再回到Storyboard中,指定场景所绑定的类,如图所示:

这时的Cell数量只有一个,假设我这里需要三个Cell的话,可以先选中在TableViewController控件,然后在Attributes inspector中的Prototype Cells,将其数量修改为3,如图所示:

接下来,需要指定每个Cell的Identifier了。打开Storyboard的大纲视图模式。点击相应的Cell,并分标从上到下,标为:
视图如图所示:

这个Identifier是非常重要的,在编码的时候,会使用到这个名称,来区别不同的Cell。
最后就是编码了,直接上代码吧:
第一部份,tableView(_:numberOfRowsInSection:)这个方法,是用来指定Cell显示行数的,这里需要按你实际设定的Cell数量来设置。
1 | override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { |
第二部份,tableView(_:cellForRowAtIndexPath:)来显示表格内容的。对于每行显示内容固定的表格,只需要拿到Cell,再对Cell上项目进行赋值操作即可。但对于每行表显示项目不同的Cell来说,我们需要拿到每个Cell,然后对其进行赋值操作。
这里我使用switch语法,根据不同的indexPath.row的值对每个Cell的内容进行操作。
1 | override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { |
当然这只是显示了一下如何对每个Cell进行操作而已,在实际的项目中,这个Cell的定义会更加复杂,比如可以使用xib,每个Cell也可以绑定不同的Cell类,这样操作起来会更加灵活。
最后的效果是这样的:
