[swift] TableFlip 애니메이션을 사용하여 Swift에서 테이블 뷰에서 셀을 시간 지연 후 삭제하는 방법
테이블 뷰에서 셀을 삭제하는 간단한 방법은 deleteRows
메서드를 사용하는 것입니다. 그러나 때로는 셀이 삭제되기 전에 애니메이션을 적용하여 사용자에게 시각적인 피드백을 제공하는 것이 좋을 수 있습니다. TableFlip 애니메이션 프레임워크를 사용하면 테이블 뷰에서 셀을 시간 지연 후 삭제하는 동적인 효과를 구현할 수 있습니다.
TableFlip 애니메이션 설치하기
먼저, 프로젝트에 TableFlip 애니메이션을 설치해야 합니다. Cocoapods를 사용하여 설치하는 방법은 다음과 같습니다.
- Podfile 파일을 열고 다음 코드를 추가합니다.
pod 'TableFlip'
- 터미널에서 프로젝트 디렉토리로 이동한 후
pod install
명령어를 실행합니다.
$ cd [프로젝트 디렉토리 경로]
$ pod install
- Podfile에 정의된 종속성을 포함한 새로운 workspace 파일이 생성됩니다. 터미널에서 이 파일로 열어줍니다.
$ open [프로젝트 이름].xcworkspace
TableFlip 애니메이션 적용하기
- 먼저, TableFlip을 import 해줍니다.
import TableFlip
- UITableViewDelegate 프로토콜의
tableView(_:commit:forRowAt:)
메서드를 구현합니다.
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
let cell = tableView.cellForRow(at: indexPath)
// TableFlip 애니메이션 적용
cell?.flip(.fromLeft, duration: 0.3)
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
// 지연 후 셀 삭제
tableView.deleteRows(at: [indexPath], with: .automatic)
}
}
}
위 코드는 사용자가 셀을 삭제하도록 요청하면, 해당 셀에 TableFlip 애니메이션을 적용하고 0.3초 이후에 셀을 삭제하는 로직입니다. 애니메이션은 cell?.flip(.fromLeft, duration: 0.3)
코드로 적용되며, DispatchQueue.main.asyncAfter
를 사용하여 적절한 시간 지연을 주고 셀을 삭제합니다.
이제 테이블 뷰에서 셀을 삭제할 때 TableFlip 애니메이션을 적용하여 동적인 효과를 구현할 수 있습니다.