
만드는 방법은 많지만 이번에는 .xib파일을 만들어서 구성해 볼 예정이다.
코딩을 하면서 느끼는 거지만 생각보다 custom으로 무엇인가를 처리 할 일이 많다.
이전의 셀프사이즈 여기서 나온 개념이 활용된다.
constraint
Top = T
Leading = L
Trailing = R
bottom = B
width = W
height = H
라고 이하 생략하겠습니다.

bottom의 Constraint가 Safe.Area에 걸려있어서 그런데 이것을
FirstItem, relation, SecondItem을 수정해주면

여백없이 TableView가 설정된다.

프로젝트 네비게이션에서 프로젝트에 우클릭 or
commend+ n 을눌러서 newFile을 눌러 생성을합니다.

이름을 동일하게 짓는게 좋다.
우리는 TableView에 추가 할 셀을 설정 할 것이기 때문에~

W,H = 40, T = 8, L =8
L = 8, t = 8, R = 10 ( Greater than Equal )

commend누른채 두개의 label을 클릭하고 제일 우측하단의 스택뷰 클릭!
- Axis : 방향
- Alignment : 정렬
- Distribution : 채우기
- Spacing : 객체 간 간격


Color를 조절하면 됩니다.
Label을 ImageView와 동일한 선상에 위치를 시키고
우클릭 or ctrl + 드래그 하면

leading을 눌러주면

동일한 위치에 Constraint가 걸리는 것을 확인 할 수 있다.
동일한 위치가아니라면

Leading Alignment Constraint, constant 값을 확인하면 된다.
나머지는 아래와 같이 설정
W = 10, R = 10
T = 10, L = 위와같은방법으로 Label(내용)과 같게 , B = 10




W :20 ,H 20
hand.thumb.fill,heart.fill,arrowarrowshape.turn.up.right.fillarrowshape.turn.up.right.fill 바꿔서 넣어주면된다.

스토리보드 상에서
기초적인 틀이 완성됐다.
이러면 왜 dynamicTableView야 ??
Label ( 내용 ) 에서 우리는 height를 설정하지않고 lines도 0 으로 설정 즉, 내용이 길어지게되면 자동적으로 셀의 크기가 커질 것이다.
내가 이해한 것은 AutoLayout 수평 수직의 모든 객체의 위치와 크기를 설정한다. 크기를 설정 하지 않았더라도 수직,수평 의 모든 객체의 연결이 Constraint가 충돌되지않고 연결되어있다면 AutolayOut은 제대로 설정된것이라 할 수있다.

전부 걸어서 뷰의 수직방향의 처음과 끝을 Constraint로 연결시키는 느낌
크기와 constraint를 임의로 설정 했을 때 다른기기에서는 그 오토레이아웃이 제대로 작동이 안 될 수 있다는 것이다. 무리하게 크기를 크게 잡거나 했을 때 주의해야된다.
하나의 기기가 총 길이가 300 인데 객체 1 2 3 수직방향 constraint값 + Height 값의 합이 300이상이 되게되면 greater than equal, priority 수정 등 작업을 해주거나 다시 설정해 주어야한다.
Class 와 identifier 설정 
identifier 설정identifier 설정
identifier랑 .swift 이름과 일치시키는것이 좋다.
DynamicTableViewCell.swift에 IBOutlet을 설정
ImageView , Content(내용)

awakeFromNib() 설정

크기가 다른 문자열 배열을 생성

TableView에 Cell 등록

아주중요
TableView의 dataSource와 Delegate를 등록해주어야한다.
가독성을 위해 extension으로 datasource를 밑으로 옮겼다.
DataSource를 상속받게되면 numberOfRowInSection과
cellForRowAt을 설정하라고 오류가 나오는데 이것을 fix하면 자동으로 두개의 함수가 설정된다.
numberOfRowInSection : 하나의 섹션의 테이블 셀의 갯수 설정 (기본적으로 섹션은 1개로 잡는다. ) cellForRowAt: 셀에 대한 indexPath와 데이터를 설정 
