안녕하세요 :)
iOS 개발자 리치(rich_iosdev)입니다.
공유해드릴 내용은 UITableView 입니다.
UITableView?
A view that presents data using rows arranged in a single column.
하나의 열에 여러 행을 사용해서 데이터를 보여주는 뷰.
테이블 뷰는 iOS 어플리케이션에 많이 사용되는 뷰이며, 리스트 형태로 스크롤이 가능한 특징이 있습니다.
#1 테이블 뷰 스타일
테이블 뷰는 일반, 그룹 2가지 스타일이 있습니다.
- 일반: A single long list of rows
- 그룹: group related rows into sections
#2 테이블 뷰 타입
테이블 뷰 생성시 다음 2가지 타입으로 생성이 가능합니다.
- 동적 프로토타입(Dynamic Prototypes)
- 셀 하나를 디자인해 이를 다른 셀의 템플릿으로 사용하는 방식
- 같은 레이아웃의 셀을 여러 개 이용해 정보를 표시할 경우
- 데이터 소스(UITableViewDataSource) 인스턴스에 의해 콘텐츠를 관리하며, 셀의 개수가 상황에 따라 변하는 경우에 사용
- 정적 셀(Static Cells)
- 고유의 레이아웃과 고정된 수의 행을 가지는 테이블뷰에 사용
- 테이블뷰를 디자인하는 시점에 테이블의 형태와 셀의 개수가 정해져 있는 경우 사용
- 셀의 개수가 변하지 않음
주로 사용하는 타입은 레이아웃은 같지만 여러 데이터를 보여주기 위해서 사용되는 동적 프로토타입(Dynamic Prototypes)입니다. 정적 셀(Static Cells)의 경우에는 고정된 셀 타입이기 때문에 셀의 갯수와 데이터의 동적 변화가 없는 경우 활용 가능합니다.
#3 샘플 코드
import UIKit
class TableViewSample: UITableViewController {
fileprivate let cellId = "cellId"
override func viewDidLoad() {
super.viewDidLoad()
tableView.register(UITableViewCell.self, forCellReuseIdentifier: cellId)
}
}
extension TableViewSample {
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: cellId, for: indexPath)
cell.textLabel?.text = "테이블 뷰를 만들었습니다"
return cell
}
}
extension TableViewSample {
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 80
}
}
UITableViewController로 만든 TableView 샘플 코드입니다.
아래 이미지는 시뮬레이터로 작동시킨 테이블 뷰 화면입니다.
포스팅 내용 중 잘못된 내용이 있다면 댓글 부탁드립니다!
확인해서 수정하도록 하겠습니다
끝까지 읽어주셔서 정말 감사합니다 :)
'Codes Travel > iOS Boost Course #2019' 카테고리의 다른 글
뷰의 재사용 이란? (0) | 2019.08.01 |
---|---|
UITableViewCell (테이블 뷰 셀)? (0) | 2019.08.01 |
Gesture Recognizer란? (0) | 2019.07.24 |
Target-Action 디자인 패턴 (0) | 2019.07.24 |
Singleton (싱글턴) 이란? (0) | 2019.07.24 |