setEditing 메서드를 이용해 Edit 버튼을 누를경우 편집모드로 전환하고
commit editingStyle forRowAt , moveRowAt을 이용해 cell을 삭제하고 순서를 변환을 가능하게 함
배운것들
1 . strong Outlet 변수
strong Outlet 변수 editButton추가
NavigationItem이 done이 되면 weak에 의해 메모리 해제가 일어나 더이상 재사용할 수 없음
2.Selector
- viewDidLoad에서 BarbuttonItem 생성
- selector안에 버튼을 눌렀을 경우 호출되는 메서드 doneButtonTap 추가
objc) selector는 동적호출을 목적으로 매 class를 가리키는참조타입
swift) 구조체형식으로 정의되고 해당값의 값을 생성할 수 있게 됨
- selector에 전달할 메서드는 반드시 @objc를 앞에 붙여주어야함
- objc와 호환성을 위함, swift에서 작성한 메서드를 objc에서 인식하도록함
- done 버튼을 눌렀을때 setEditing 편집모드를 빠져나오게끔 함
3. setEditing
.setEditing메서드를 이용해 편집모드 활성화함
- edit버튼을 눌렀을때 taks배열이 비어있지 않을 경우에만 실행하도록 방어코드 작성함
- leftBarButton이 doneButton으로 변경되도록함
4. commit editingStyle forRowAt
- 편집모드 스타일일때 어떤셀을 없앴는지 확인할 수 있는 메서드
- 편집모드가 아니더라도 스와이프 방식을 통해 삭제가능해짐
- tasks의 배열이 비게 되면 편집모드를 나가게끔 설정
5. moveRowAt
- 셀 재정렬할때 사용
- 행이 다른 위치로 이동하면 sourceIndexPath를 통해 원래 위치를 알려줌
- destionationIndexPath 파라미터를 통해 어디로 이동했는지 알려줌
결과
'프로젝트 만들어보기' 카테고리의 다른 글
[iOS] 코로나 어플만들기 - COVID19 (Swift) (0) | 2022.10.30 |
---|---|
[iOS] 날씨 앱 만들기 (UIKit) (0) | 2022.10.25 |
[iOS] TodoList 만들기 2/3 (UserDefaults/didSelectRowAt) (2) | 2022.10.11 |
[iOS] TodoList 만들기 1/3 (UIAlertController) (2) | 2022.10.09 |
[iOS] 계산기 만들어보기 (Swift) (2) | 2022.10.06 |