考虑我们有
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: HomeViewController.episodeTableViewCellIdentifier, for: indexPath) as! EpisodeTableViewCell
cell.backgroundColor = UIColor.red
cell.selectionStyle = .none
cell.titleLabel.text = episodesArray[indexPath.row].title
return cell
}
如果我想分离单元配置部分(设置backgroundColor和cell selectionStyle),该部分对于所有单元都是相同的,以防止每次执行tableView:cellForRowAt:的代码行都被调用?
答案 0 :(得分:0)
在单元格类中创建一个函数。
configure() {
// setup cell properties here
}
然后,您只需要编写cell.configure()来代替所有设置行。
如果您希望它更通用,可以将此配置功能放在扩展中
extension UITableViewCell {
func configure() {
// configure code lines
}
}
答案 1 :(得分:0)
解决方案是将单元格配置代码放置在Cell内的awakeFromNib()
中,这样,它将仅被调用一次。
赞
override func awakeFromNib() {
super.awakeFromNib()
setupCell()
}
private func setupCell() {
selectionStyle = .none
backgroundColor = .red
}