첫 주차를 TableView를 다뤄보기로 하였고, 30개의 project 중 하나인 FacebookMe를 만들어보기로 했다.
https://github.com/M1zz/FacebookMe
테이블 뷰 -> 테이블 뷰 셀 -> 셀마다 imageView, Label 배치 후
오토레이아웃 설정
일단 희망하는 위치에 배치한다.
- x,y, width, height 모두 잡아야한다.
- 나는 수평,수직 위치 잡고, 거기에 따른 x,y를 잡고, 그 다음에 내용물에 따라 weight, height를 잡아주는 게 좋다고 생각했다.
스토리보드와 viewcontroller와의 연결
연결한다. (진짜진짜 하면 안되는 대표적인 예시)
이렇게 ViewController에 모든 IBOutlet을 연결했더니, 다음과 같은 오류가 발생하였다.
Oultets cannot be connected to repeating content.
IBOutlet이 반복되는 컨텐츠에 연결될 수 없단다.
뷰 컨트롤러가 로드되었을 때, 테이블 뷰 셀이 없기 때문에 IBOutlet이 연결될 방법이 없다고 한다.
그러니 subclass를 만들어서 셀들을 연결해서 사용하라고 한다.
그래서 나는 셀마다 파일을 만들어주고, identifier를 부여해주었다.
내가 했던 잘못된 방법에 대해 다시 곰곰히 생각해보았다.
ViewController에 처으메 UItableView를 연결해서 테이블뷰가 생성되었다고 치자. (여기까지 좋음)
근데, 모든 Oultet들은 테이블뷰가 아닌 테이블뷰셀에 있는거다.
근데, 테이블뷰에 모든 요소들을 연결해놓았으니, 말이 안되지..
그래서 해결방법은? -> subclassing 하면 된다.
아래 스택오버플로우 글을 참고하여 해결하였다.
https://stackoverflow.com/questions/26561461/outlets-cannot-be-connected-to-repeating-content-ios
Header 만들기
1. 테이블뷰에 뷰를 register를 준다.
2. 헤더에 들어가는 text를 지정하고 싶어서, titleForHeaderInSection이 들어간 메소드를 이용했다.
3. header의 크기를 설정하고 싶어서, heightForFooterInsection이 들어간 메소드를 이용했다.
완성
'IT > IOS' 카테고리의 다른 글
[iOS] tapGesture 예제를 코드로 다뤄보기 (0) | 2021.08.26 |
---|---|
[iOS 오류] Unable to activate constraint with anchors (0) | 2021.08.22 |
[iOS] Constraint설정 isActive vs addConstraints vs NSLayoutConstraint (0) | 2021.08.22 |
[iOS ] Table View 테이블 뷰 & 테이블 뷰 셀 - 작성 중 .. (0) | 2021.08.16 |
[iOS] 탭바 Tab bar - 작성 중 ... (0) | 2021.08.16 |