У меня есть tableView с swipeActions, и эти действия вызывают tableView.reloadRows
, чтобы обновить мою таблицу.
Я заметил, что не могу снова провести только что обновленную строку после действия.
проблема была ли эта ячейка сохранять статистику той панели SwipeActions, которая отображается. Я думаю, что простой метод, который «проведет назад» по этой ячейке назад, решит мою проблему, но я не нахожу ничего.
(я не хочу перезагружать весь tableView)
func tableView(_ tableView: UITableView,
trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
let removeAction = UIContextualAction(style: .normal, title: nil, handler: { _, _, _ in
self.tableView.reloadRows(at: [indexPath], with: .automatic)
// self.items.remove(at: indexPath.row)
// self.tableView.deleteRows(at: [indexPath], with: .automatic)
})
removeAction.image = UIImage(named: "ic_garbage")!.scaleImageToFitSize(size: CGSize(width: 32.0, height: 32.0))
removeAction.backgroundColor = UIColor.lightGray
let actionModify = UIContextualAction(style: .normal, title: nil, handler: { _, _, _ in
self.tableView.reloadRows(at: [indexPath], with: .automatic)
// self.changeQty(indexPath)
})
actionModify.image = UIImage(named: "ic_exchange")!.scaleImageToFitSize(size: CGSize(width: 32.0, height: 32.0))
actionModify.backgroundColor = UIColor.orange
let toReturn = UISwipeActionsConfiguration(actions: [removeAction, actionModify])
toReturn.performsFirstActionWithFullSwipe = false
return toReturn
}