swift Перерисовка view в tableview
Создал кастомный view
override func draw(_ rect: CGRect)
{
let arrowPath = UIBezierPath()
arrowPath.move(to: CGPoint(x: 0, y: 0))
arrowPath.addLine(to: CGPoint(x: rect.width - 30, y: 0))
arrowPath.addLine(to: CGPoint(x: rect.width, y: 30))
arrowPath.addLine(to: CGPoint(x: rect.width, y: rect.height))
arrowPath.addLine(to: CGPoint(x: 0, y: rect.height))
arrowPath.addLine(to: CGPoint(x: 0, y: 0))
arrowPath.close()
ColorsConst.yellow.set()
arrowPath.fill()
}
эта вьюшка стоит у меня в tableview, проблема в том, что отображается криво
хотя я в функции draw четко указываю размер линии. Скорее всего, это происходит из за того, что высота tableview плавающая UITableView.automaticDimension, если поставить строгую высоту ячейки, то таких проблем нет. Можно ли оставить динамическую высоту и решить проблему отображения?
Ответы (1 шт):
Автор решения: schmidt9
→ Ссылка
Скорее всего такой эффект возникает из-за повторного использования ячеек в таблице при скроллинге таблицы, поэтому вьюшки нужно принудительно перерисовывать. Попробуйте нечто подобное
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TestTableViewCell
// ...
cell.customView.setNeedsDisplay()
return cell
}
