티스토리 뷰
Custom TableView Code로 작성하기
Record |
|
작성일 |
2019. 05. 29 (수) |
Swift 버전 |
Swift 5 |
Xcode 버전 |
10.2.1 |
안녕하세요 :]
오늘은 customCell 등록을 통해서 tableView를 사용하는 연습을 하도록 하겠습니다.
1. tableView 선언 및 설정 |
테이블 뷰의 오토 레이아웃을 잡기 위해서
translayesAutoresizingMaskIntoConstraints를 false로 설정합니다.
다음으로 register를 통해서 customCell인 MainTableViewCell을 등록하고,
Cell의 Identifier는 MainTableViewCell에 정의해놓은 identifier 상수 값을 가져옵니다.
2. tableView 추가 설정 및 오토 레이아웃 |
configure() 함수에서 "tableView.dataSource = self"를 합니다.
tableView의 Heigth를 직접 적용하려면 rowHeight 값을 주면 됩니다.
그리고 autoLayout을 잡기 전에 tableView를 view에 addSubView 합니다.
마지막으로, 오토 레이아웃을 통해서 테이블 뷰의 레이아웃을 설정합니다.
3. tableView CustomCell 생성 |
ViewController에서 customCell을 register 할 때 사용할 identifier를 선언합니다.
이렇게 작성할 경우의 이점은, identifier의 오탈자 발생을 줄여줍니다.
identifier의 값을 잘못 적었다 하더라도 의도하던 대로 cell의 연결이 잘 이루어지게 될 거예요.
그리고, customCell을 꾸미기 시작합니다.
ImageView와 2개의 Label을 올립니다.
물론 오토 레이아웃을 잡기 위해서 translatesAutoresizingMaskIntoConstraints의 값도 false로 줍니다.
4. tableView CustomCell 설정 |
UITableViewCell 안에서 addSubview를 할 때는 contentView에 addSubview를 하게 됩니다.
ImageView와 Label의 오토 레이아웃을 잡아주면 customCell은 끝입니다.
5. tableView의 dataSource |
MainViewController의 configure() 함수에서 "tableView.dataSource = self"를 해줬던 걸 기억하실 겁니다.
dataSource를 사용하겠다고 해줬으니! 사용해 봅시다.
사실, tableView를 사용할 때는 필수적으로 dataSource를 사용해야 합니다.
(delegate의 경우 선택적입니다.)
먼저, numberOfRowsInSection은 몇 개의 cell을 생성할 것인지 알려주는 메서드입니다.
return Type이 Int이며, 반환되는 숫자만큼 cell을 생성하게 됩니다.
다음으로, cellForRowAt은 UITableViewCell을 반환합니다.
여기서 실제로 셀을 생성하고 indexPath.row 값을 사용하여
cell에 접근하여 값들을 적용시켜 주기도 합니다.
위의 코드만으로도 기본적인 customCell을 사용한 tableView 생성에는 큰 문제가 되지 않습니다.
그밖에 셀의 선택, 삭제, Section 생성 등은 부가적인 기능 추가를 통해서 사용하실 수 있습니다.
위에 예제 코드는 git을 통해서 확인해주세요~
https://github.com/furydeveloper/SwiftPractice/tree/master/TableViewExample
감사합니다 :]
'개발 > iOS' 카테고리의 다른 글
[Swift] iOS 파이어베이스에 연동하기 (421) | 2019.06.08 |
---|---|
[Xcode] CocoaPods(코코아팟) 설치 및 사용 방법 (0) | 2019.06.03 |
[Swift] 여러 이미지를 이용해 Custom Loading 화면 만들기 (7) | 2019.06.02 |
[Swift] ARC (Automatic Reference Counting) (423) | 2019.06.01 |
[Swift] 변수, 상수, 자료형 (415) | 2019.06.01 |
- Total
- Today
- Yesterday
- TableView
- Swift Target Version
- firebase
- 애플로그인
- TextField Padding
- presentingViewController
- 문자열나누기
- 카카오 로그인
- 키크론K2
- 앱커넥트
- Android
- Sign in with Apple
- iOS13
- xcode11
- UITextField 멀티라인
- SWIFT
- GIF
- swift fcm
- 안드로이드
- Kakao
- error
- ActivityViewController
- 앱스토어 커넥트
- 공유하기 한국어
- signinwithapple
- Swift GoogleMap
- Xcode
- swift 문자열
- ios
- ModalPresentaionStyle
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |