- UITableViewDelegate 를 통하여서 구현한다!
deleteRows(at:with:)
Deletes the rows that an array of index paths identifies, with an option to animate the deletion.
- 특정 indexPath에 cell을 tableview에서 제거해준다.
func deleteRows(
at indexPaths: [IndexPath],
with animation: UITableView.RowAnimation
)
tableView(_:editingStyleForRowAt:)
Asks the delegate for the editing style of a row at a particular location in a table view.
- 특정 indexpath의 로우의 editingStyle을 설정해준다.(.none / .delele / .insert)
optional func tableView(
_ tableView: UITableView,
editingStyleForRowAt indexPath: IndexPath
) -> UITableViewCell.EditingStyle
‼️ 단, 모든 cell은 기본적으로 UITableViewCell.EditingStyle.delete 이 default이다!
tableView(_:commit:forRowAt:)
Asks the data source to commit the insertion or deletion of a specified row.
- 해당 함수 안에서 insert나 deletion을 진행할 수 있다.
- 함수 바디에 아무런 구현을 해주지 않아도, 해당 함수를 호출함으로써 cell을 옆으로 스와이프할 때 빨간색 delete 버튼이 생기게된다.
😎 예시를 통해서 알아보자!
extension ContactViewController: UITableViewDelegate {
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
// 배열에서 indexPath.row에 해당하는 값 제거하기
contacts.remove(at: indexPath.row)
// 해당 cell을 tableview에서 없애기(UI적 요소)
tableView.deleteRows(at: [indexPath], with: .fade)
}
}
'iOS' 카테고리의 다른 글
[iOS] Gesture recognizer, Touch event handling (0) | 2023.02.28 |
---|---|
[iOS] 의존성 관리 도구(Package Manager) (0) | 2023.02.21 |
[iOS] sizeToFit()과 ToolBar (0) | 2023.02.09 |
[iOS] Target-Action Pattern (0) | 2023.02.06 |
[iOS] UIResponder (0) | 2023.02.06 |