Всем привет!
Планомерно прохожу курсы и в 18 уроке по Delete Action ( Приложения На Основе UITableView) столкнулся с методом UITableViewRowAction, который упразднен в iOS 13.0.
Вроде бы разобрался что надо заменить на UIContextualAction, и даже код компилится, но появилась непонятные баги с отображением ячеек, т.е. после удаления строки, открываешь соседнюю строку, а там данные другой строки(ниже иллюстрация). Подозреваю, что происходит смещение IndexPath и из-за этого открывается другая строка.
Подскажите как можно решить проблему?
// старый кусок кода из урока где все работало корректно ( метод депрекейтед)
override func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
let place = places[indexPath.row]
let deleteAction = UITableViewRowAction(style: .default, title: "Delete") { (_, _) in
StorageManager.deleteObject(place)
tableView.deleteRows(at: [indexPath], with: .automatic)
}
return [deleteAction]
}
//Обновленный код где происходят баги.
func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
let place = places[indexPath.row]
let deleteAction = UIContextualAction(style: .destructive, title: "Delete") { _, _, complete in
StorageManager.deleteObject(place)
tableView.deleteRows(at: [indexPath], with: .automatic)
complete(true)
}
let configuration = UISwipeActionsConfiguration(actions: [deleteAction])
configuration.performsFirstActionWithFullSwipe = true
return configuration
}