У меня проблема при удалении ячеек в моем табличном представлении. Похоже, что при удалении ячейки следующая ячейка, отображаемая на экране, не отображается. Я отладил cellForRowAt
, и ячейка очищается и набор данных, но ячейка табличного представления никогда не отображается. Вот мой соответствующий код:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "taskCell", for: indexPath) as! TaskTableViewCell
if let task = self.task(indexPath: indexPath) {
cell.update(task: task)
}
cell.checkChanged = ...
return cell
}
override func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
guard let task = self.task(indexPath: indexPath) else {
return nil
}
var actions = [UIContextualAction]()
let delete = UIContextualAction(style: .destructive, title: LocStr("delete")) { [unowned self] (action, view, success) in
self.delete(indexPath: indexPath)
success(true)
}
actions.append(delete)
...
let configuration = UISwipeActionsConfiguration(actions: actions)
return configuration
}
func delete(indexPath: IndexPath) {
DispatchQueue.main.async { [unowned self] in
if let task = self.task(indexPath: indexPath) {
self.allTasks.removeAll(where: { $0.id == task.id })
self.sort()
...
self.tableView.beginUpdates()
self.tableView.deleteRows(at: [indexPath], with: .fade)
self.tableView.endUpdates()
}
}
}
![missing table view cell](https://i.stack.imgur.com/0kjpI.png)
Как вы можете видеть, когда я прокручиваю представление таблицы, следующая ячейка пуста, хотя для этой ячейки вызывается cellForRowAt
. Я отладил пользовательский интерфейс и смог подтвердить, что в пустом пространстве нет ячейки.
* +1012 *
Кто-нибудь еще имел эту проблему? Здесь я что-то не так делаю?