기본적으로는 Table View Controller을 사용하지만 오늘은 이해를 위해 View에 Table View를 추가!
Table View를 뷰에 꽉 채우기 위해 Constraints를 추가한다.
모든 방향에 0, 그리고 Constrain to margins도 체크를 해제하자.
아웃렛 변수 설정까지 고!
UITableViewDelegate, UITableViewDataSource 두 가지 프로토콜을 채택하자.
여기서, UITableViewDelegate만 채택했을 때는 오류가 뜨지 않는다. why? 이 프로토콜은 필수 메소드가 없기 때문!
XCode의 fix 기능을 사용하여 UITableViewDataSource의 필수 메소드를 추가해준다.
테스트용 코드
여기서 viewDidLoad 메소드에 들어가 있는 코드인
table.dataSource = self
table.delegate = self
라는 코드가 없으면 이 테이블뷰는 제대로 동작하지 않는다.
이는 우리가 해당 프로토콜들을 "뷰 컨트롤러"에서 보여주기 때문이다.
이는 뷰가 제대로 기능하기 위해 권한을 부여하는 것이라고 할 수 있다. (대리자 위임)
numberOfSections 메소드 추가
index path란 어떤 것인지 확인할 수 있음.
이미지까지 추가!
만약 table view가 마음에 들지 않으면 직접 table view cell을 사용하자.
새로운 swift 하나 만들기
myCell의 identity inspector에서 새로 만든 swift파일로 클래스 연결해주기
label 추가 후 constraint까지 지정
디자인 변경
MyTableViewCell.swift에 label 아웃렛 변수 선언
ViewController.swift에서 코드 변경
시뮬레이터 실행 화면
테이블 셀을 선택하면 그 셀의 index path가 출력되는 코드
시뮬레이터를 실행하고 테이블 셀을 선택하면 이렇게 콘솔 창에 index path 값이 출력된다.
참고 : iOS프로그래밍실무(21년-1학기) 한성현 교수님 강의 및 강의 자료 변형, 요약
'iOS > Swift실전' 카테고리의 다른 글
[iOS]this class is not key value coding-compliant for the key (2) | 2022.01.22 |
---|---|
[iOS] 할 일 체크리스트 앱 만들기! To do list (0) | 2022.01.19 |
[iOS] 우리 동네 맛집 앱 만들기 ② (0) | 2022.01.15 |
[iOS] 우리 동네 맛집 앱 만들기 ① (0) | 2022.01.14 |
[iOS] 오토레이아웃 적용 완료 (0) | 2022.01.13 |