我有一个UITableViewCell,它包含我创建的自定义UIView(以及其他一些东西)。我的自定义视图扩展了UIView,并覆盖了drawRect以进行一些自定义绘制。
我的tableview在最初加载每个单元格时正确呈现,但是当我滚动表格时,正在重复使用单元格,并且不会为它们重新调用自定义UIView.drawRect方法。这导致过时的UIView被用于tableview中的单元格。
我做错了吗?我尝试在tableview单元格上设置setNeedsDisplay
,但这不起作用。
答案 0 :(得分:1)
事实证明我在setNeedsDisplay
上呼叫UITableViewCell
。当我在表格视图单元格内的自定义UIView
上调用它时,它可以正常工作。
答案 1 :(得分:0)
我在cellForRowAt中调用它,它设法更新了我放在其中的自定义Tableview UIView上的图表。
下面的代码:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// this is cast AS! ErgWorkoutCell since this is a custom tableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "ergWorkoutCell") as? ErgWorkoutCell
cell?.ergWorkoutTitle.text = jsonErgWorkouts[indexPath.row].title
cell?.ergWorkoutTime.text = String(FormatDisplay.time(Int(jsonErgWorkouts[indexPath.row].durationMin * 60)))
cell?.ergLineChartView.setNeedsDisplay()
return cell!
}