UITableView에서 스와이프 액션을 적용하는 것은 iOS 앱에서 자주 보게 되는 편리한 기능입니다. 이 포스트에서는 어떻게 UITableView의 셀에 스와이프 액션을 추가하는지 간단하게 소개하겠습니다.
UITableView에서 스와이프 액션을 추가하려면, UITableViewDelegate 프로토콜의 메서드를 활용합니다.
func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
let deleteAction = UIContextualAction(style: .destructive, title: "Delete") { (action, view, completionHandler) in
// 삭제 로직
completionHandler(true)
}
return UISwipeActionsConfiguration(actions: [deleteAction])
}
func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
let editAction = UIContextualAction(style: .normal, title: "Edit") { (action, view, completionHandler) in
// 편집 로직
completionHandler(true)
}
editAction.backgroundColor = .blue
return UISwipeActionsConfiguration(actions: [editAction])
}
액션을 성공적으로 처리했음을 알리려면 completionHandler(true)를 호출합니다. 반대로 액션을 취소하려면 completionHandler(false)를 호출하면 됩니다.
UISwipeActionsConfiguration에는 스와이프에 대한 추가 설정을 할 수 있는 여러 속성이 있습니다. 그 중 performsFirstActionWithFullSwipe 속성은 사용자가 셀을 전체 너비로 스와이프할 때 첫 번째 액션이 자동으로 실행될지 설정할 수 있습니다.
예를 들어, 자동으로 액션이 실행되지 않게 설정하려면 아래와 같이 합니다:
configuration.performsFirstActionWithFullSwipe = false