[iOS] editButtonItem

RudinP·2024년 4월 30일
0

Study

목록 보기
224/227

애플의 시계 앱을 보면 좌측 상단의 편집을 누를 시 나라 이름만 표시되며, 테이블 셀의 액세서리를 통해 삭제할 수 있다.
이를 구현하기 위해서는 네비게이션 버튼을 추가하고 액션을 연결해 직접 테이블 셀의 표시 방법을 수정하는 방식이 있지만, 코드 상에서 작업하면 editButtonItem으로 쉽게 구현 가능하다.

editButtonItem

  • editButtonItem은 setEditing이라는 메소드를 오버라이딩 할 수 있다.
  • 해당 메소드에서 테이블 뷰의 setEditing을 같이 호출해주거나, 별도로 처리할 과정을 기입하면 된다.


-버튼을 누르면 tableView의 setEditing이 실행된다.

셀을 편집할 때 표시되는 부분 정하기

  • UITableViewCell을 상속한 클래스에서 setEditing 메소드를 작성한다.

weak로 인한 constraint 크래시

  • constraint는 weak var로 연결되는데, 이 경우 constraint는 isActive가 false가 될경우 자동으로 nil이 되고, 이로 인해서 크래시가 발생한다.
  • 따라서 weak를 빼준다.

edit시와 스와이프로 삭제 시 setEditing 구별 방법

  • self.superviewUITableView로 타입캐스팅 할 시 nil이면 테이블뷰 전체를 edit하고있지 않는 상태이다.
  • 따라서, self.superview를 UITableView로 타입캐스팅 했을 때 nil이면 스와이프로 삭제하는 상태를 상정하고 구현하면 된다.
profile
곰을 좋아합니다. <a href = "https://github.com/RudinP">github</a>

0개의 댓글