与常规的UITableViewController不同,我正在尝试在容器视图中创建一个表视图,以便可以对其进行动画处理。
在情节提要中创建了一个UIViewController,并将UIView作为“ containerView”。在containerView内部是一个tableView。 IDK为什么它一直给我零。
class SearchViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = self
tableView.delegate = self
tableView.register(SearchViewCell.self, forCellReuseIdentifier: "SearchResult")
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "SearchResult", for: indexPath) as! SearchViewCell
cell.addressLabel.text = "Hello"
cell.subtitleLabel.text = "There"
return cell
}
}
SearchViewCell
class SearchViewCell: UITableViewCell {
@IBOutlet weak var addressLabel: UILabel!
@IBOutlet weak var subtitleLabel: UILabel!
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
}
}
答案 0 :(得分:2)
1-此寄存器
tableView.register(SearchViewCell.self, forCellReuseIdentifier: "SearchResult")
仅对以编程方式创建的自定义单元(显然没有出口)有效。
2-对于原型单元格(当您在布局表中创建单元格时),则不需要寄存器
3-如果您是在xib中创建单元格布局的,那么还有另一种注册方式
tableView.register(UINib(nibName: "SearchViewCell", bundle: nil), forCellReuseIdentifier: "cellID")