我有一个UITableView
,其单元格包含动态内容。
让我们说一下,单元格内容可能有三种类型(实际上,还有更多种类型。)
Type1
:3个UILabel
堆叠在一起
Type2
:2个UIButtons
并排放置
Type3
:1 UISlider
我在中心
我有这些UI元素的类。
在我的cellForRowAtIndexPath
中,将它们添加到contentView
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: cellID)!
cell.contentView.subviews.forEach { $0.removeFromSuperview() } // Remove everything before adding new stuff
cell.contentView.addSubview(Type3()) // Pretend there's logic here to decide whether to use Type1, Type2, or Type3
return cell
}
这目前可以使用,但显然很hacky,并不优雅。我该怎么办?