我正在创建一个简单的应用程序。我试图让两个屏幕看起来一样,但我似乎无法让其中一个表格 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
}()
可能导致错误的原因是您不小心调用了始终为 nil
的 tableView
方法。?如果不是,请给出一些如何重现错误的提示)。
关于ios - 我正在尝试从一个屏幕到另一个屏幕重新创建表格 View ,但不断收到错误信号 sigabrt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56916961/