[TIL] 2021.06.17
✅⠀TableView Cell Swipe Action
UITableViewDelegateを使用する場合
extension ViewController: UITableViewDelegate{
func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
guard indexPath.item > 0 else { return nil }
let delete = UIContextualAction(style: .normal, title: nil) { (action, view, completion) in
self.num -= 1 // 데이터 삭제 후
tableView.deleteRows(at: [indexPath], with: .automatic) // 호출
completion(true)
}
delete.backgroundColor = .red
delete.title = "삭제"
let insert = UIContextualAction(style: .normal, title: nil) { (action, view, completion) in
self.num += 1
tableView.reloadData()
completion(true)
}
insert.title = "삽입"
let configuration = UISwipeActionsConfiguration(actions: [delete, insert])
configuration.performsFirstActionWithFullSwipe = false
return configuration
}
}
// leadingSwipe
func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath)
// trailing Swipe
func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath)
RxCocoaを使用する場合
tableView.rx.itemDeleted
.subscribe(onNext: { [weak self] indexPath in
self?.finedustListViewModel.removeFineDust(indexPath.item)
})
.disposed(by: disposeBag)
Reference
この問題について([TIL] 2021.06.17), 我々は、より多くの情報をここで見つけました https://velog.io/@sainkr/1-ern2oya6テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol