【发布时间】:2021-10-04 08:21:05
【问题描述】:
我正在尝试将 UIView 添加到 tableview 单元格中的现有 IBOutlet。但是,直到我滚动离开单元格并滚动回它之前,这不会出现。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let stockCell = tableView.dequeueReusableCell(withIdentifier: "stockCell", for: indexPath) as! customStockCell
let progressBar = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
progressBar.backgroundColor = .green
stockCell.progressContainerView.addSubview(progressBar)
return cell
}
class customStockCell: UITableViewCell {
@IBOutlet var progressContainerView: UIView!
}
【问题讨论】:
-
除此问题外,请注意,每当重用单元格时,您都会添加一个新视图。您应该检查视图是否已经存在。
-
谢谢,这不是问题的一部分,我知道如何解决它,所以我没有在这个问题中包含该代码。
-
为什么要在
cellForRowAt委托方法内的单元格中添加UIView对象? progressBar 家伙的目的是什么?如有必要,创建UITableViewCell的子类并在那里进行。 -
在我所有的编码生涯中,我一直在 cellForRow 部分完成大部分设置。那不是我应该做这些事情的地方吗?