我有一个类似下面的细胞类:
class DocumentPartCell: UITableViewCell {
@IBOutlet weak var documentPartTitle: UILabel!
@IBOutlet weak var documentPartNumber: UILabel!
@IBOutlet weak var documentPartProgress: UILabel!
var documentPart: DocumentPart? {
didSet {
if let documentPart = documentPart {
self.documentPartTitle.text = documentPart.title
self.documentPartNumber.text = "\(documentPart.partNumber)"
}
}
}
}
如您所见,documentPart包含数据。
如果我理解正确,didSet应该从documentPart输入数据到documentPartTitle和documentPartNumber。
在cellForRowIndexPath
我喜欢以下内容:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let documentPartCell = tableView.dequeueReusableCellWithIdentifier("documentPartCell", forIndexPath: indexPath) as! DocumentPartCell
return documentPartCell
}
但是,当UIViewController
上显示tableview时,它不会触发didSet函数。我在didSet方法的中间设置了断点。但是它命中了cellForRowAtIndexPath
函数。我究竟做错了什么?我只是试图将所有作业委托给单元格类来输入UILabel
中的值。
答案 0 :(得分:1)
你的cellForRowAtIndexPath
应该是这样的:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let documentPartCell = tableView.dequeueReusableCellWithIdentifier("documentPartCell", forIndexPath: indexPath) as! DocumentPartCell
documentPartCell.documentPart = documentPartCommingFromTheDataSource
return documentPartCell
}