首页 > 解决方案 > 无法以编程方式设置 UITableView 单元 - 线程 1:EXC_BAD_ACCESS (code=EXC_I386_GPFLT)

问题描述

我正在尝试使用自动布局以编程方式设置我的 UITableView 单元格,但它一直在崩溃,我不确定为什么会这样。请问有人可以建议吗?

我正在尝试使用自动布局以编程方式设置我的 UITableView 单元格,但它一直在崩溃,我不确定为什么会这样。请问有人可以建议吗?

class FolderCell: UITableViewCell{

var jTitle: UILabel = {
    let label = UILabel()
    label.font = UIFont.italicSystemFont(ofSize: 12)
    label.textColor = UIColor.gray
    return label
}()

var date: UILabel = {
    let label = UILabel()
    label.font = UIFont.italicSystemFont(ofSize: 12)
    label.textColor = UIColor.gray
    return label
}()

var aTitle: UILabel {
    let label = UILabel()
    label.font = UIFont.boldSystemFont(ofSize: 15)
    label.textColor = UIColor.gray
    return label
}

var authors: UILabel = {
    let label = UILabel()
    label.font = UIFont.italicSystemFont(ofSize: 12)
    label.textColor = UIColor.gray
    return label
}()

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

    cellSetup()
}

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}


private func cellSetup(){
    contentView.addSubview(jTitle)
    contentView.addSubview(aTitle)
    contentView.addSubview(date)
    contentView.addSubview(authors)

    setUpLabels()
}

private func setUpLabels(){
    jTitle.translatesAutoresizingMaskIntoConstraints = false
    jTitle.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 10).isActive = true
    jTitle.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 10).isActive = true
    jTitle.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -10).isActive = true

    aTitle.translatesAutoresizingMaskIntoConstraints = false
    aTitle.topAnchor.constraint(equalTo: jTitle.bottomAnchor, constant: 10).isActive = true
    aTitle.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 10).isActive = true
    aTitle.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -10).isActive = true 
}

}

我遇到以下崩溃:

在此处输入图像描述

标签: swift

解决方案


看起来您没有启动 aTitle 标签。在使用它之前尝试启动它。

 var aTitle: UILabel = {
    let label = UILabel()
    label.font = UIFont.boldSystemFont(ofSize: 15)
    label.textColor = UIColor.gray
    return label
}()

推荐阅读