快速使用Custom UITableViewCell时为什么没有内容

时间:2019-05-13 14:34:50

标签: ios swift uitableview

我以编程方式创建一个表格视图,并自定义其单元格

TheCell.swift

import Foundation
import UIKit

class TheCell: UITableViewCell {
  var takeTime: UILabel = UILabel()

  override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
    super.init(style: style, reuseIdentifier: reuseIdentifier)
    self.backgroundColor = .clear
    self.addSubview(takeTime)
  }

  required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)!
  }

  override func setSelected(_ selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)
  }

  override func layoutSubviews() {
    super.layoutSubviews()
    takeTime = UILabel(frame: CGRect(x:0, y:0, width:100,height:40))
    takeTime.textColor = .lightGray
  }
}

在表格视图中,我使用

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    var cell = tableView.dequeueReusableCell(withIdentifier: "cell") as? TheCell
    if (cell == nil) {
        cell = TheCell(style: .default, reuseIdentifier: "cell")
    }
    cell?.takeTime.text = "23:23"
    return cell!
}

我以为我可以得到时间列表23:23,但是没有任何想法吗?

1 个答案:

答案 0 :(得分:0)

而不是像这样将takeTime添加为单元格子视图:self.addSubview(takeTime)将其添加为单元格contentView:contentView.addSubview(takeTime)

的子视图

此外,在layoutSubviews中仅设置标签的框架: takeTime.frame = CGRect(x:0, y:0, width:100,height:40)