UITableViewCell没有被正确调用

时间:2016-01-27 09:37:29

标签: ios swift uitableview

我有一个类似下面的细胞类:

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中的值。

1 个答案:

答案 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
 }