View

300x250

[iOS 앱 개발 - Swift] 테이블 뷰의 데이터소스와 델리게이트

Table View

테이블 뷰는 그 자체가 UITableView 클래스의 인스턴스이죠. 이 테이블 뷰를 마음에 드는 형태로 만들기 위해 행의 높이, 헤더 등의 여러 설정을 정해줄 수 있습니다. 또는 현재 선택한, 또는 특정한 행이나 셀에 접근할 수 있도록 합니다. UITalbeView 의 메서드를 호출해서 선택지를 수정하거나, 행이나 섹션의 삽입/삭제를 실행할 수도 있습니다.

UITableView 클래스는 UIScrollView 클래스를 상속하고 있어서, 화면보다 긴 내용을 '세로로만 가능한 스크롤'을 통해 확인할 수도 있습니다.

Table View Controller

UITableViewController 클래스는 표준 테이블 뷰의 여러 기능을 제공합니다. 행 수정, 설정, 선택지에 대한 관리 등의 역할을 수행할 수 있습니다. 이러한 기능을 통해 작성해야 할 코드의 양을 줄일 수 있습니다. 이 클래스를 직접적으로 사용하기 보다는 하위클래스(상속받는 자식)를 만들어 원하는 대로 수정할 때 주로 사용됩니다.

Data Source and Delegate

UITableView 객체는 무조건 델리게이트와 데이터소스를 가져야 합니다. MVC모델(Model - View - Controller)에 따라서, 데이터소스가 앱의 데이터모델과 뷰 사이에서 정보를 제공하는 역할을 합니다. 반면 델리게이트는 테이블 뷰의 형태와 기능을 관리하는 역할을 합니다. 많은 경우 델리게이트와 데이터소스는 같은 객체이며, UITableViewController 의 하위클래스입니다. (해당 클래스를 상속하여 제공되는 코드를 내 입맛에 맞게 수정하여 사용)

· Data Source

데이터 소스는 앞서 말했듯이, 테이블 뷰를 생성하고 수정할 때 필요한 정보들을 제공합니다. (외형의 형성을 위한 필수적인 최소한의 데이터만을 제공) 데이터 소스는 UITableViewDataSource 프로토콜을 따르게 됩니다. 이 프로토콜은 두 개의 메서드를 필요로 하는데, 각 섹션에서 몇 개의 행을 보여줄 지를 결정하는 numberOfRowsInSection: 과 각 행에서 어떤 정보를 보여줄 지를 제공하는 cellForRowAtIndexPath: 두 개의 메서드를 필요로 합니다. 이 둘 외에도 헤더, 푸터, 행의 삽입/삭제 등에 관련된 메서드를 선택적으로 골라 사용이 가능합니다.

 

필수 메서드들. 요 두놈을 작성해주지 않으면 에러가 발생해요!

[Data Source] https://developer.apple.com/documentation/uikit/uitableviewdatasource

 

UITableViewDataSource - UIKit | Apple Developer Documentation

Protocol UITableViewDataSource The methods adopted by the object you use to manage data and provide cells for a table view. Declarationprotocol UITableViewDataSource OverviewTable views manage only the presentation of their data; they do not manage the dat

developer.apple.com

 

· Delegate

델리게이트는 UITableViewDelegate 프로토콜을 채택합니다. 이 프로토콜은 필수로 요구하는 메서드는 없지만, 선택해서 사용할 수 있는 다양한 테이블 뷰의 외형에 대한 설정을 하는 메서드를 가지고 있습니다. 테이블 뷰의 섹션, 액세서리뷰, 각각의 행에 대한 수정, 편집모드의 접근제어 등을 할 수 있습니다.

[Delegate] https://developer.apple.com/documentation/uikit/uitableviewdelegate

 

UITableViewDelegate - UIKit | Apple Developer Documentation

Methods for managing selections, configuring section headers and footers, deleting and reordering cells, and performing other actions in a table view.

developer.apple.com


현재 Swift 포스팅은 edwith의 부스트코스 iOS 프로그래밍 강좌를 보면서 3번째 Chapter를 공부한 내용을 정리하는 중입니다. 

코드리뷰를 제외한 모든 강의와 강의자료는 무료로 개방되어있고, 네이버 아이디로도 강의를 들을 수 있으니 iOS 프로그래밍, 아이폰 앱개발에 관심이 있으신 분은 아래 링크의 강의를 한 번 확인해보세요! 프로젝트로 직접 앱을 만들면서 공부할 수 있어 큰 도움이 되고 있습니다!

 

https://www.edwith.org/boostcourse-ios/notices/12898

 

에듀케이션위드 : edwith

에드위드(edwith)는 네이버(NAVER)와 커넥트재단(CONNECT)이 제공하는 온라인 강좌(MOOC : Massive Online Open Course) 교육 플랫폼입니다. 에듀케이션위드(education with) 에드위드(edwith)로 분야별 명품 강좌를 무료(Free Course)로 수강하세요.

www.edwith.org

 

320x100
Share Link
reply
반응형
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31