[iOS][Swift] UITableView Swipe Action

Jay·2023년 8월 28일
0

iOS

목록 보기
28/47

UITableView에서 스와이프 액션을 적용하는 것은 iOS 앱에서 자주 보게 되는 편리한 기능입니다. 이 포스트에서는 어떻게 UITableView의 셀에 스와이프 액션을 추가하는지 간단하게 소개하겠습니다.

1. 스와이프 액션 정의하기

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])
}

2. 액션 완료 처리

액션을 성공적으로 처리했음을 알리려면 completionHandler(true)를 호출합니다. 반대로 액션을 취소하려면 completionHandler(false)를 호출하면 됩니다.

3. 추가 설정: 전체 스와이프 동작

UISwipeActionsConfiguration에는 스와이프에 대한 추가 설정을 할 수 있는 여러 속성이 있습니다. 그 중 performsFirstActionWithFullSwipe 속성은 사용자가 셀을 전체 너비로 스와이프할 때 첫 번째 액션이 자동으로 실행될지 설정할 수 있습니다.

예를 들어, 자동으로 액션이 실행되지 않게 설정하려면 아래와 같이 합니다:

configuration.performsFirstActionWithFullSwipe = false
profile
Junior Developer

0개의 댓글