Если вы используете стандарт UITableViewCell
, не забудьте сбросить содержимое внутри функции UITableViewDelegate cellForRowAtIndexPath
, поскольку dequeueReusableCell
перезапустит уже инициализированную ячейку (которая должна быть приведена в исходное состояние)
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "aCellIdentifier", for: indexPath)!
...
cell.title.text = ""
cell.description.text = ""
}
Типичный подход, однако, состоит в том, чтобы создать подкласс UITableViewCell
и реализовать метод prepareForReuse
(который вызывается автоматически перед повторным использованием ячейки), в котором вы в конечном итоге сбросите все метки, изображения и подпредставления в исходное состояние
override func prepareForReuse() {
super.prepareForReuse()
self.labelScore.text = ""
self.labelDate.text = ""
}