以编程方式将UILabel添加到自定义tableViewCell

时间:2016-03-10 21:59:46

标签: ios swift uilabel tableviewcell

我尝试以编程方式将标签添加到自定义表格视图单元格中。该应用程序仍会因意外发现的零而崩溃。我在这里看过其他帖子,但我看不出自己做错了什么。有关详细信息,请参阅代码。

import UIKit

class MyTableViewCell: UITableViewCell {

  var titleLabel: UILabel!

  override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
    super.init(style: style, reuseIdentifier: reuseIdentifier)

    titleLabel = UILabel()
    titleLabel.textColor = UIColor.blackColor()
    titleLabel.font = UIFont.systemFontOfSize(17)
    titleLabel.frame = CGRect(x: 40.0, y: 2, width: bounds.width, height: bounds.height)
    addSubview(titleLabel)
  }

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

}

在视图控制器中:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("CustomCell", forIndexPath: indexPath) as! MyTableViewCell
    // Crashes the app with: 'fatal error: unexpectedly found nil while unwrapping an Optional value'
    cell.titleLabel.text = "Some text"
}

自定义表视图类已正确分配给情节提要板中的原型单元格。

如果我将MyTableViewCell内的声明更改为var titleLabel = UILabel()并从init()内删除该行,则会显示表格视图,但我的标签不会显示。 这段代码看起来不错,关于我在这里可能缺少什么的任何建议?

1 个答案:

答案 0 :(得分:1)

您在故事板中制作了自定义单元格,因此您无需为表格视图注册课程。故事板中的视图会调用initWithCoderawakeFromNib,请在这两个功能中添加标签