๐ฅย ViewController์ ์๋ช
์ฃผ๊ธฐ
- ์ฑ์ ์ฒ์ ์คํ/์๋ก์ด ์ฅ๋ฉด์ผ๋ก ์ ํํ ๋ ๊ทธ ์ฅ๋ฉด(Scene)์ ๋ด๋นํ๋ ViewController ๊ฐ์ฒด๊ฐ ์๋ก ์์ฑ๋๋ค.
- ์์ฑ๋ ๊ฐ์ฒด๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋๋์ด ์์ ์ ์ญํ ์ ํ๋ค.
- ์ฃผ์ด์ง ์ญํ ์ ๋ชจ๋ ๋๋ด๋ฉด ์ฑ์ ์ด์ ์ฅ๋ฉด์ผ๋ก ๋ณต๊ท
- ์์ฑ๋์๋ ๋ทฐ ์ปจํธ๋กค๋ฌ ๊ฐ์ฒด๋ ๋ฉ๋ชจ๋ฆฌ์์ ํด์ ๋๋ฉด์ ์๋ฉธ
ViewController์ ์ํ์ ๋ฐ๋ผ ํธ์ถ๋๋ ๋ฉ์๋๋ค์ ViewController์ ์ ์๋์ด์๋ค.
๐ฅย View์ ์ํ๋ณํ

๐ฅฅย ์ํ๋ณํ์ ๋ฐ๋ผ ํธ์ถ๋๋ ๋ฉ์๋๋ค
๐ init
๐loadView()
- ํ๋ฉด์ ๋์ด์ง View๋ฅผ ๋ง๋ค๊ณ , ViewController์ view ํ๋กํผํฐ์ ํ ๋น
- ์ง์ ์ ์ผ๋ก ํธ์ถX
๐ viewDidLoad()
- ViewController์ ๋ชจ๋ ๋ทฐ๋ค์ด ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋๋์์ ๋ ํธ์ถ(present ๋ฑ์ผ๋ก)
- ํ๋ฉด์ด ๋ณด์ฌ์ง๊ธฐ ์ ๋ฐ์ดํฐ๋ฅผ ๋ฟ๋ ค์ฃผ๋ ํ์์ ๋ํ ์ฝ๋ ์์ฑ
- ์๋ช
์ฃผ๊ธฐ์์ ๋ฑ ํ๋ฒ ๋ถ๋ฆผ
- ๋คํธ์ํฌ ํธ์ถ ๋ฑ ๋ฑ ํ ๋ฒ ํธ์ถ๋ ํ์๋ค์ ์ด ๋ฉ์๋ ์์์ ์ ์ํจ
- ๋ทฐ์ ์ถ๊ฐ์ ์ธ ์ด๊ธฐํ ์์
ํ ์ ์์
๐ viewWillAppear(_:)
- ๋ทฐ๊ฐ ๋ทฐ ๊ณ์ธต์ ์ถ๊ฐ๋๊ณ , ํ๋ฉด์ ๋ณด์ด๊ธฐ ์ง์ ์ ๋งค ๋ฒ ํธ์ถ๋จ
- viewDidLoad()์ ๋ฌ๋ฆฌ ํ๋ฉด ์ ํ์ ํตํด, ๋ค๋ฅธ ๋ทฐ๋ก ์ด๋ํ๋ค๊ฐ ๋์์ค๋ฉด ์ฌํธ์ถ๋จ
- ํ๋ฉด์ด ๋ฑ์ฅํ ๋ ๋ง๋ค ๋ฐ์ดํฐ๋ฅผ ๊ฐฑ์ ํ๊ณ ์ถ์ ๋ ์ด ๋ฉ์๋๋ฅผ ์ค๋ฒ๋ผ์ด๋ํ๋ค.
ex> ์ ๋๋ฉ์ด์
์คํ, ๋น๋์ค, ์ฌ์ด๋ ์ฌ์
๐ viewDidAppear(_:)
- ViewController์ ๋ทฐ๊ฐ ๋ฐ์ดํฐ์ ํจ๊ป ์์ ํ ํ๋ฉด์ ๋ํ๋๋ฉด ํธ์ถ๋จ
๐ viewWillDisappear(_:)
- ViewController๊ฐ ํ๋ฉด์์ ์ฌ๋ผ์ง๊ธฐ ์ง์ ์ ํธ์ถ
- ์ค๋ฒ๋ผ์ด๋ โ ํด๋น ๋ทฐ๋ฅผ ํตํด ์ผ์ด๋ ๋ณํ ์ ์ฅ, first responder ์ํ๋ฅผ ๋ด๋ ค๋๊ธฐ, ๋ทฐ๊ฐ ๋ํ๋ฌ์ ๋ ์กฐ์ ๋๋ ๋ค๋ฅธ ๋ทฐ๋ค์ ์๋๋๋ก ๋๋ ค๋๊ธฐ ๋ฑ ํ ์ ์์
๐viewDidDisappear(_:)
- ํ๋ฉด์์ ์ฌ๋ผ์ง ์งํ
- ๋ฉ์ถ์ด์ผํ ์์
๋ค
- notifications, device sensor์ listening ์ ๋ฉ์ถ๋ ๊ธฐ๋ฅ
๐ฅ View์ ViewController์ ๋ ์ด์์ ์ฌ์ดํด
*๋ฐฑ๊ทธ๋ผ์ด๋์์ ์ดํ ๋์์ ์ดํดํ๊ธฐ ์ํด ๋งค์ฐ ์ค์!
UIView์ Layout: ํ๋ฉด์์ UIView์ ํฌ๊ธฐ์ ์์น
๋ชจ๋ View๋ Frame์ ๊ฐ๊ณ ์๋ค.
โก๏ธ Frame์ ๋ถ๋ชจ ๋ทฐ์ Coordinate System(์ขํ๊ณ)์์์ ์์น ์ ๋ณด, ํฌ๊ธฐ ์ ๋ณด๋ฅผ ๋ํ๋ธ๋ค.
๐ฅฅย ๋ ์ด์์ ์ฌ์ดํด

1. init
2. update : autolayout์ constraints๋ฅผ ๊ฐฑ์ (subview โ superview)
3. layout : ๊ฐฑ์ ๋ constraints๋ฅผ ๋ฐํ์ผ๋ก ๋ ์ด์์์ ์คํ
- view์ center์ bounds ๊ฒฐ์
- ๋ ์ด์์ ๊ฐฑ์ ์์: superview โ subview
- draw
- UIView์ drawRect(rect: CGRect) ํธ์ถ๋จ
- CoreGraphics๋ฅผ ์ฌ์ฉํ์ฌ ๊ทธ๋ฆผ