UITableView

나이든별 / Oldstar·2022년 6월 27일
0

Think about Keywords

목록 보기
29/37

공부한 것

  • Table View

고민한 점 및 생각해본 점

  • 이전부터 느끼기로, 테이블 뷰는 생각보다 우리에게 가까이 있다.
    • 그도 그럴 것이, 어느 기기에서든, 가로 모드든 세로 모드든, 스크롤 가능하면서도 원하는 뷰가 깨지지 않게 만드는 데 테이블 뷰를 사용해왔기 때문이다.
    • 먼저 화면 전체를 테이블 뷰로 만든 다음, 커스텀 셀을 여러 개 만들어서 인덱스에 따라 배치하면 원하는 화면을 만들 수 있었다.
  • 이번에 테이블 뷰를 공부하면서 가장 흥미로웠던 점은, 테이블 뷰로 상술한 화면을 만들 수 있었던 이유가 바로 UIScrollView를 상속했기 때문이었다는 것이다.
  • 테이블 뷰에서 코드로 설정할 수 있는 여러 가지 프로퍼티들은, 대개 스토리보드에서도 조작할 수 있다. 테이블 뷰의 사용을 두려워하지 말자!
  • UITableViewDelegateUITableViewDataSource의 역할을 분명히 구분하는 것도 중요하다고 생각된다.
  • UITableViewDelegate은 공식 문서에 따르면, '선택된 사항의 관리 / 섹션의 위 아래 공간 / 셀의 삭제와 재배열 / 기타 동작' 등을 구현한다고 한다.
    • 가장 자주 보았던 메서드는 역시 didSelectRowAt. 해당 row의 셀을 선택했을 때 트리거되는 메서드다.
    • 테이블 뷰 셀이 유저의 선택을 전제로 하다 보니 아무래도 그런 것 같다.
    • 셀을 선택했을 때도 어떻게 처리할지, 선택된 셀은 다시 deselect할지 등 생각할 거리가 많다. 그때그때 앱을 짜면서 생각해보자.
    • 이외에도 상술한 기능에 관련된 수많은 메서드가 있고, 차차 활용하면서 익혀보자.
  • UITableViewDataSource는 공식 문서에 따르면, 테이블 뷰를 위한 데이터를 관리하고 셀을 제공하기 위한 메서드다.
    • 테이블 뷰를 구현한다면 필수적으로 볼 함수, cellForRowAtnumberOfRowsInSection이 바로 UITableViewDataSource에 있는 함수.
  • 두 가지 보좌 프로토콜을 가지고 있는 UITableView. 그런 만큼, 테이블 뷰를 다룰 때 어느 메서드에서 어느 메서드로 흐름이 옮겨가는지 잘 알아야겠다고 느꼈다.

참조

https://developer.apple.com/documentation/uikit/uitableview
https://developer.apple.com/documentation/uikit/uitableviewdelegate
https://developer.apple.com/documentation/uikit/uitableviewdatasource

profile
함께 나아가고자 하는 사람

0개의 댓글