Computer Science
탄탄한 기반 실력을 위한
전공과 이론 지식 모음
Today I Learned!
배웠으면 기록을 해야지
TIL 사진
Flutter 사진
Flutter로 모바일까지
거꾸로캠퍼스 코딩랩 Flutter 앱개발 강사
스파르타코딩클럽 즉문즉답 튜터
카카오테크캠퍼스 3기 학습코치
프로필 사진
박성민
임베디드 세계에
발을 들인 박치기 공룡
임베디드 사진
EMBEDDED SYSTEM
임베디드 SW와 HW, 이론부터 실전까지
ALGORITHM
알고리즘 해결 전략 기록
🎓
중앙대학교 소프트웨어학부
텔레칩스 차량용 임베디드 스쿨 3기
애플 개발자 아카데미 1기
깃허브 사진
GitHub
프로젝트 모아보기
Instagram
인스타그램 사진

Develop/iOS 개발

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

sm_amoled 2019. 8. 16. 14:13

[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