我尝试以编程方式将标签添加到自定义表格视图单元格中。该应用程序仍会因意外发现的零而崩溃。我在这里看过其他帖子,但我看不出自己做错了什么。有关详细信息,请参阅代码。
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()
内删除该行,则会显示表格视图,但我的标签不会显示。
这段代码看起来不错,关于我在这里可能缺少什么的任何建议?
答案 0 :(得分:1)
您在故事板中制作了自定义单元格,因此您无需为表格视图注册课程。故事板中的视图会调用initWithCoder
和awakeFromNib
,请在这两个功能中添加标签