13.1.4 UITableViewCell
在查看通讯录或者邮件时,我们会明显地发现每个应用之间的Cell都长得不太一样。这是因为iOS为开发者提供了自定义Cell的基础类UITableViewCell,因此我们只需要新建一个UITable ViewCell的子类就可以进行定制的Cell开发。创建一个Cocoa Touch Class,选择UITableViewCell作为基类,并且生成XIB文件,如图13.1.8所示:
图13.1.8 创建自定义的UITableViewCell
点击“Next”,Xcode为我们生成了一个CustomTableViewCell.swift以及CustomTableViewCell.xib文件。点击xib文件,我们会发现这个自定义的Cell下已经存在一个Content View,如图13.1.9所示(虽然通过代码的形式将控件添加至UITableViewCell下也能够正确展示,但还是建议将后续的展示控件放在这个Content View之下)。
图13.1.9 CutomTableViewCell.xib
为CustomTableViewCell增加两个Label,用于展示书名和简介,如图13.1.10所示:
图13.1.10 为CustomTableViewCell增加两个Label
通过Assistant editor将两个Label和CustomTableViewCell中的属性关联起来:
接着我们就可以使用CustomTableViewCell作为展示的Cell,代码如下:
动手写13.1.3 UITableViewPractise->ViewController.swift
因为使用XIB作为Cell的载体,所以这里不能使用init方法进行Cell的初始化,而是要使用tableView的register(_ nib: UINib?, forCellReuseIdentifier identifier: String)方法进行。这个方法将一个nib对象和一个用于tableView复用的标识位作为参数对一个Cell进行注册,在真正需要时,使用tableView的dequeueReusableCell(withIdentifier identifier: String, for indexPath: IndexPath) -> UITableViewCell将相应的Cell取出并返回。这里还制定了每个Cell的高度是90,最终界面展示如图13.1.11所示。
图13.1.11 CustomTableViewCell初次展示