我正在尝试制作一个自定义表格视图单元格。
如果我这样做:
class TableViewCell: UITableViewCell {
@IBOutlet weak var cellBackgroundImage : UIImageView!
}
并且:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! TableViewCell
cell.cellBackgroundImage.backgroundColor = UIColor.white
cell.cellBackgroundImage.layer.masksToBounds = false
cell.cellBackgroundImage.layer.cornerRadius = 5
let event = self.fetchedResultsController.object(at: indexPath)
self.configureCell(cell, withEvent: event)
return cell
}
我获得了一个白色的圆形细胞背景。简单。而且我可以使用原始的cell.textLabel.text
。
完美。
但是,如果我想做一些更复杂的事情:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as? TableViewCell
if (cell == nil) {
cell = UITableViewCell(style: UITableViewCellStyle.subtitle, reuseIdentifier: "Cell") as? TableViewCell
cell?.cellBackgroundImage.backgroundColor = UIColor.white
cell?.cellBackgroundImage.layer.masksToBounds = false
cell?.cellBackgroundImage.layer.cornerRadius = 5
self.configureCell(cell!, withObject: object)
}
同时将原始表视图属性用作UITableViewCellStyle.subtitle
和cell.accessoryView
时,应用程序崩溃或显示错误的输出。
这意味着我必须使用带有更多插座的完整定制单元来替换原始元素,如 UITableViewCellStyle.subtitle 和 cell.accessoryView ???
我将用另一种方式表达它:
我可以仅将自定义表格单元格用于一种目的(例如圆形背景),并使用诸如字幕样式和配件视图之类的原始元素吗?
在肯定的情况下,怎么办?