UITableView의 개념
UITabelView는 열에서 수직으로 스크롤되는 콘텐츠의 행(길이)를 표시한다. 여기서 각 열은 각각의 콘텐츠를 담고 있다.
연락처 앱에서는 각각의 연락처를 스크롤 목록으로 정리한 TableView를 사용하고
설정 앱에서는 다양한 설정들을 그룹화(섹션)하여 스크롤 목록으로 표시
이렇게 함으로서, 앱은 더욱 구조화되고 계층적인 구조를 갖게 되고,
계층간 탐색을 용이하게 하는 NavigationViewController와 함께 사용하기도 한다.
UITableView는 테이블의 기본적인 모양을 관리한다고 하면
실제 콘텐츠를 표시하는 것은 UITableViewCell로서, 제공되며 셀 그룹(섹션)에 대해 추가 정보를 제공하기 위해
header and footer views를 제공할 수도 있다.
UITableView의 활용을 위한 3가지
1. UITableView: 단일열로 구성된 행을 통해 데이터를 표시하는View로서, 목록 형태의 UI를 만드는데 주로 사용됨
2. UITableViewCell: UITable의 각 헹을 나타내는 데 사용(콘텐츠표시) 사용자 지정 뷰를 포함 할 수 있다.
3. UITableViewController: TableView를 관리하는 ViewController
UITableView기본 형태
테이블뷰 기본 형태
- 테이블뷰는 하나의 열(column)과 여러 줄의 행(row)을 지니며, 수직으로만 스크롤 가능
- 각 행은 하나의 셀(cell)에 대응합니다. (셀에 대해서는 다음 시간에 자세히 배워볼 거예요!)
- 섹션(section)을 이용해 행을 시각적으로 나눌 수 있습니다.
- 헤더(header)와 푸터(footer)에 이미지나 텍스트를 추가해 추가 정보를 보여줄 수 있습니다.
테이블뷰의 두가지 형태
- 일반 테이블뷰(Plain TableView)
- 더 이상 나뉘지 않는 연속적인 행의 리스트 형태입니다.
- 하나 이상의 섹션을 가질 수 있으며, 각 섹션은 여러 개의 행을 지닐 수 있습니다.
- 각 섹션은 헤더 혹은 푸터를 옵션으로 지닐 수 있습니다.
- 색인을 이용한 빠른 탐색을 하거나 옵션을 선택할 때 용이합니다.
- 그룹 테이블뷰(Grouped TableView):
- 섹션을 기준으로 그룹화되어있는 리스트 형태입니다.
- 하나 이상의 섹션을 가질 수 있으며, 각 섹션은 여러 개의 행을 지닐 수 있습니다.
- 각 섹션은 헤더 혹은 푸터를 옵션으로 지닐 수 있습니다.
- 정보를 특정 기준에 따라 개념적으로 구분할 때 적합합니다.
- 사용자가 정보를 빠르게 이해하는 데 도움이 됩니다.
테이블뷰의 구현 방법 두가지
UITableViewController 클래스의 객체를 이용해 두가지 방법으로 TableView 구현이 가능
- 동적 프로토타입(Dynamic Prototypes)
- 셀 하나를 디자인해 이를 다른 셀의 템플릿으로 사용하는 방식
- 같은 레이아웃의 셀을 여러 개 이용해 정보를 표시할 경우
- 데이터 소스(UITableViewDataSource) 인스턴스에 의해 콘텐츠를 관리하며, 셀의 개수가 상황에 따라 변하는 경우에 사용
- 정적 셀(Static Cells)
- 고유의 레이아웃과 고정된 수의 행을 가지는 테이블뷰에 사용
- 테이블뷰를 디자인하는 시점에 테이블의 형태와 셀의 개수가 정해져 있는 경우 사용
- 셀의 개수가 변하지 않음
TableViewCell
TableViewCell은 TableView를 구성하는 행(row)로 TableView 영역안에서 실질적으로 콘텐츠를 표시하는 역할을 한다.
UITableViewCell 클래스를 상속받게 되며 이미 정의된 표준 스타일을 통해 구현하거나
서비스에 맞춰 커스텀시켜 사용 할 수 있다.
TableViewCell의 구조
TableViewCell은 콘텐츠, 악세서리뷰 두가지 영역으로 나뉜다.
- 콘텐츠 영역: 셀의 왼쪽 부분으로 주로 이미지, title등이 들어감
- 악세서리뷰: 셀의 오른쪽, 주로 재정렬, 상세보기 등의 기능이 들어감
TableViewCell 기본 기능
UITableViewCell을 상속받아, 정의된 표준 스타일로 상속이 가능하며
한개 이상의 문자열과 이미지를 지닐 수 있다.
- UITableViewCell의 기본 구현 프로퍼티
- textLabel : UILabel주 제목(제목)
- detailTextLabel: UILabel 밑에 표시되는 부제목
- imageView: UIImageView 이미지 표시를 위한 view(아이콘 등)
'🍎swift > swift 기초' 카테고리의 다른 글
[swift] 프로퍼티, 메서드,인스턴스 용어 정리 (1) | 2023.12.22 |
---|