iOS UITableView содержимое удаленной ячейки появляется при вставке новой ячейки - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть табличное представление, где ячейки могут быть вставлены и удалены.Для вставки ячеек я использую следующий код:

tableView.beginUpdates()
tableView.insertRows(at: [IndexPath(row: cellCount-2, section: 0)], with: .automatic)
tableView.endUpdates()

Для удаления я использую следующий код:

tableView.beginUpdates()
tableView.deleteRows(at: [indexPath], with: .automatic)
tableView.endUpdates()

Прикрепление изображения проблемы, с которой я сталкиваюсь.При удалении ячейки и вставке новой, содержимое ячейки заполняется в новой ячейке.Может кто-нибудь помочь мне разобраться в этой проблеме?

enter image description here

1 Ответ

0 голосов
/ 25 сентября 2018

Если вы используете стандарт 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 = ""
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...