一般地,我們對 cell 進行復用會采用如下代碼:
// 在 viewDidLoad 方法中注冊
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
...
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: identify, for: indexPath)
return cell
}
但這樣做的結(jié)果是 cell 的 UITableViewCellStyle 屬性是默認的 default。而 UITableViewCellStyle 只能在如下初始化方法中設置:
cell = UITableViewCell(style: .subtitle, reuseIdentifier: "cell")
那該如何改變 UITableViewCellStyle 且同時達到復用的目的呢?
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell: UITableViewCell? = nil
cell = tableView.dequeueReusableCell(withIdentifier: "cell")
if cell == nil {
cell = UITableViewCell(style: .subtitle, reuseIdentifier: "cell")
}
return cell!
}
Ref:
https://blog.csdn.net/weixin_42349140/article/details/80947266
http://www.cocoachina.com/bbs/read.php?tid-1730647.html
http://www.cocoachina.com/bbs/read.php?tid-1706470.html