ios - 我正在尝试从一个屏幕到另一个屏幕重新创建表格 View ,但不断收到错误信号 sigabrt

标签 ios swift uitableview delegates

我正在创建一个简单的应用程序。我试图让两个屏幕看起来一样,但我似乎无法让其中一个表格 View 工作。相反,当调用设置 TableView 函数时,会出现错误信号 sigbart。我不明白这是为什么,因为在另一个屏幕上,表格 View 没有问题,我已经复制了代码。

let tableview: UITableView = {
    let tv = UITableView()

    tv.backgroundColor = UIColor.white
    tv.translatesAutoresizingMaskIntoConstraints = false

    return tv
}()

func setupTableView() {
    tableview.delegate = self
    tableview.dataSource = self

    tableview.register(BunchCells.self, forCellReuseIdentifier: "cellId")

    tableview.backgroundColor = UIColor(red: 1, green: 1, blue: 1, alpha: 0)

    view.addSubview(tableview)

    NSLayoutConstraint.activate([
        tableview.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 170),
        tableview.bottomAnchor.constraint(equalTo: self.view.bottomAnchor),
        tableview.rightAnchor.constraint(equalTo: self.view.rightAnchor),
        tableview.leftAnchor.constraint(equalTo: self.view.leftAnchor)
    ])
}

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

        setupView()
    }

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

    let cellView: UIView = {
        let view = UIView()

        view.backgroundColor = UIColor.red
        view.layer.cornerRadius = 10

        view.translatesAutoresizingMaskIntoConstraints = false

        return view
    }()

    let dayLabel: UILabel = {
        let label = UILabel()
        label.text = "Day 1"
        label.textColor = UIColor.white
        label.font = UIFont.boldSystemFont(ofSize: 16)
        label.translatesAutoresizingMaskIntoConstraints = false

        return label
    }()    

    func setupView() {
        addSubview(cellView)

        NSLayoutConstraint.activate([
            cellView.topAnchor.constraint(equalTo: self.topAnchor, constant: 20),
            cellView.rightAnchor.constraint(equalTo: self.rightAnchor, constant: -10),
            cellView.leftAnchor.constraint(equalTo: self.leftAnchor, constant: 10),
            cellView.bottomAnchor.constraint(equalTo: self.bottomAnchor)
        ])

        dayLabel.heightAnchor.constraint(equalToConstant: 200).isActive = true
        dayLabel.widthAnchor.constraint(equalToConstant: 200).isActive = true
        dayLabel.centerYAnchor.constraint(equalTo: cellView.centerYAnchor).isActive = true
        dayLabel.leftAnchor.constraint(equalTo: cellView.leftAnchor, constant: 20).isActive = true
    }
}

最佳答案

我运行你的程序,没有任何错误,但我觉得这看起来有点奇怪:

weak var tableView: UITableView!

let tableview: UITableView = {
    let tv = UITableView()
    tv.translatesAutoresizingMaskIntoConstraints = false
    tv.separatorColor = UIColor.white
    return tv
}()

可能导致错误的原因是您不小心调用了始终为 niltableView 方法。?如果不是,请给出一些如何重现错误的提示)。

关于ios - 我正在尝试从一个屏幕到另一个屏幕重新创建表格 View ,但不断收到错误信号 sigabrt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56916961/

相关文章:

ios - "Different language linkage"— xcode 4 中的警告,xcode 5 中的错误

ios - UIWebView - 加载内容前的白色背景

ios - 自定义表格 View 单元格 : IBOutlet label is nil

swift - 最后在 ViewDidLoad 中运行的 Firebase 调用

iOS Swift Http 请求 post 方法使用 header x-www-form-urlencoded?

ios - UITableViewCell 中具有不同标题的 UIButton

cocoa-touch - 触摸时不突出显示 TableView 行

iphone - iTether 是如何工作的 (html5 iphone api)

ios - UITabBarItem 图像在单击时正在更改图像

ios - 如何检查所有按钮的背景颜色