๋ง๊ตญ ๋ฐ๋ํ
1900๋ ํ๋ฆฌ์์ ์งํ๋์๋ ์์คํฌ์ ํ๊ตญ ์ถํ์์ ํ ์ด๋ธ ๋ทฐ๋ก ๋ณด์ฌ์ฃผ๋ ์ฑ ์ ๋๋ค.
ํ๋ก์ ํธ๋ฅผ ๊ตฌํํ๋ฉฐ ์ฌ์ฉํด๋ณธ ๊ฒ
- TDD
- ScrollView
- AutoLayout
- TableView
- JSONDecoding
- Dynamic Type
๋ฏธ๋ | ์ ์ดํธ์ |
---|---|
STEP1
- 10์ 18์ผ
- ํ๋ก์ ํธ ์๊ตฌ์ฌํญ ๋ถ์
- Assets ํ์ผ ์ถ๊ฐ
- JSON ํ์ฑ ํ ์คํธ ์ฝ๋ ์์ฑ
- Exposition, Item ํ์ ์์ฑ
STEP2
- 10์ 20์ผ
- ํฌ์คํฐ ํ๋ฉด ์์ ์์ฑ
- ์คํฌ๋กค ๋ทฐ๋ฅผ ์ ์ธํ ํฌ์คํฐ ๋ทฐ ์คํ ๋ ์ด์์ ์ค์
- 10์ 21์ผ
- UIScrollView ์ถ๊ฐ ๋ฐ ํฌ์คํฐ UI ์์ ๋ฆฌํฉํฐ๋ง
- Json ๋์ฝ๋ฉ ๋ฉ์๋ ์ถ๊ฐ ๋ฐ ๋ทฐ์ ๋ฐ์ดํฐ ์ค์
- 10์ 24์ผ
- ์ถํ์ ํ๋ฉด์ผ๋ก push ๋ฉ์๋ ์ค์
- ์ถํ์ ํ๋ฉด ์์ฑ ๋ฐ push
- customTableCell ์์ฑ
- JSON Decoding
- 10์ 25์ผ
- ์ถํ์ ํ๋ฉด์ ์คํ ๋ ์ด์์ ์ค์
- ์ถํ์ ๋ํ ์ผ์ค๋ช
- 10์ 26์ผ
- ๋ชจ๋ธ ํ์ ๋ณ์๋ช ์์
- ๋ทฐ ์ ๋ฐ์ดํธ ๊ด๋ จ ๋ฉ์๋ ์์
STEP3
- 10์ 27์ผ
- ํ๋ฉด Orientation ๊ตฌํ
- Font ๋ค์ด๋๋ฏน ํ์ ๊ตฌํ
- 10์ 28์ผ
- ์ปจ๋ฒค์ ์ ๋ฆฌ
- ์์ ๋ถ๊ฐ ํด๋์ค ์์
UIScrollView๋ ContentLayout์ด๋ผ๋ ๋ทฐ์ ๋ด๋ถ์ ์์๋ค์ ๋ทฐ์ ๋์ด๋ ํญ์ด ๋์ผํ์ฌ์ผ๋ง ์คํฌ๋กค์ ํ ์ ์๋๋ก ๋์ด์์ต๋๋ค. ํ์ง๋ง, ๋ด๋ถ ์์๋ค์ width๊ฐ scrollView์ ContentLayout์ width์ ๋์ผํ์ง ์์์ ๋ฐ์ํ ๋ฌธ์ ์์ต๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์containerView๋ฅผ ๋ง๋ค์ด์ ์์๋ค์ ๋ฃ์ ๋ค์ containerView์ scrollView์ width๋ฅผ ๋ง์ท์ต๋๋ค.
ํด๊ฒฐ ์ | ํด๊ฒฐ ํ |
---|---|
CustomView๋ก ๊ตฌ์ฑํ ๋ฒํผ์ heightAnchor๊ฐ 0์ด ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์์ต๋๋ค. ์ด๋ UIView ํด๋์ค๊ฐ Instric Content Size๋ฅผ ๊ฐ์ง๊ณ ์์ง ์๊ธฐ ๋๋ฌธ์ด์์ต๋๋ค. ์ฆ, ์ปจํ ์ธ ์ ๋ณธ์ง์ ์ธ ์ฌ์ด์ฆ๋ฅผ ๊ฐ์ง์ง ์๊ธฐ ๋๋ฌธ์ ์ง์ ์ ์ผ๋ก ์ค์ ํ์ง ์๋ ์ด์, ๊ณ์ฐ์ ์ํํ ์ ์๊ฒ ๋๋ ๊ฒ์ ๋๋ค. ๋ํ, ์ ํฌ์ ๋ฌธ์ ๋ heigh๊ฐ์ด ์ ํด์ง์ง ์์ ์ํฉ์์ ์์ ๋ทฐ์ Constraint๋ฅผ ์ ์ฉํ์ฌ๋, UIView์ height ๊ฐ์ด 0์ด๊ธฐ ๋๋ฌธ์ ์๋์ ๋ค๋ฅด๊ฒ ๋ทฐ์ Constraint๊ฐ ์ค์ ๋๊ฒ ๋์์ต๋๋ค.
๊ทธ๋์ UIVIew์ heightํฌ๊ธฐ๋ฅผ ์ด๋ฏธ์งํฌ๊ธฐ์ height์ ๋์ผํ๊ฒ ์ค์ ํ์ฌ Instrict Content Size๋ฅผ ๊ฐ์ง ์ ์๋๋ก ํด ์ฃผ์์ต๋๋ค.
ํด๊ฒฐ ์ | ํด๊ฒฐ ํ |
---|---|
ํ ์ด๋ธ ๋ทฐ์ ์ปค์คํ ์ ์ ๊ตฌํํ๋ ๊ณผ์ ์์ TableView์ ๋ค์ด๋๋ฏน Height๋ฅผ ์ฃผ๋ ๊ฒ์ ๊ตฌํํ๋ ค๊ณ ํ์์ต๋๋ค.
์ฒ์์๋ 2๊ฐ์ ๋ทฐ๋ฅผ ํตํด์ ๋์ด๋ฅผ ์ง์ ์ ์ผ๋ก ๊ณ์ฐํ ์ ์๋๋ก ํ๋ฉด, ์๋์ ์ผ๋ก ๋์ด๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์์ต๋๋ค. ํ์ง๋ง, 2๊ฐ์ ๋ทฐ๋ฅผ ํตํด์ ๋์ด๋ฅผ ๊ณ์ฐํ๋ ๊ฒ์ ์ด๋ฏธ์ง์ height๋ฅผ ๊ณ์ฐํ๋ ๊ณผ์ ์์ contentView์ ๋์ด๊ฐ ๋ชจํธํด์ง๋ ๊ฒฐ๊ณผ๋ฅผ ๋ณ๊ฒ ๋์๊ณ , ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ automaticDemention๊ณผ estimatedHeightForRowAt ๋ฅผ ์ด์ฉํ๋ ค๊ณ ํ์์ง๋ง ํด๊ฒฐ๋์ง ์์์ต๋๋ค.
์ด์ ๋ํ ๋ฌธ์ ๋ ์ด๋ฏธ์ง์ ๋ํ ๋์ด๋ฅผ ๊ณ์ฐํ๋ ์ ์ฝ๊ณผ title๊ณผ subTitle์ ๋์ด๋ฅผ ๊ณ์ฐํ๋ ๊ณผ์ ์์ ์ถฉ๋ํ๋ ๋ฌธ์ ์์ต๋๋ค. ์ถ๊ฐ์ ์ผ๋ก title, subtitle์ด ์ค์ ์ ๋ ฌ์ด ๋์ง ์๊ณ top์ผ๋ก ๋ถ๊ฒ ๋๊ฑฐ๋ bottom์ผ๋ก ๋ถ๊ฒ ๋์์ต๋๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ์ ํํ๊ฒ Instrict Size๋ฅผ ์๋์ ์ผ๋ก ๊ณ์ฐํ๋ StackView๋ฅผ ํ์ฉํ์ฌ ๋์ด๋ฅผ ์๋์ ์ผ๋ก ๊ณ์ฐํ๊ณ , Top๊ณผ Bottom์ ์ ์ฝ์ฌํญ์ ํตํด์ ๋ทฐ์ ์ ์ ๋์ด๋ฅผ ๊ณ์ฐํ ์ ์๋๋ก ํ์๊ณ , greater์ less ์ ์ฝ์ฌํญ๊ณผ centerYanchor๋ฅผ ํตํด์ ์ค์ ์ ๋ ฌ์ ํ ์ ์๋๋ก ํ์์ต๋๋ค.
- ๊ฐ์ธ ๋ ํฌ์งํ ๋ฆฌ์์ ์ถ๊ฐ ์์