์คํ ๋ฆฌ๋ณด๋๋ฅผ ํตํด ImageView๋ฅผ ๋ฐฐ์นํด์ผํ๋ ์ํฉ์ด ์๋ค๊ณ ํฉ์๋ค. ๋ชจ์๋ฆฌ์ ๋ฅ๊ทผ ํจ๊ณผ๋ฅผ ์ฃผ๊ธฐ ์ํด์๋ ์คํ ๋ฆฌ๋ณด๋๋ง์ผ๋ก๋ ํ๊ณ๊ฐ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ผ๋ฐ์ ์ผ๋ก ์ฝ๋์์ UIView.layer.cornerRadius๋ฅผ ์ ์ฉํด ๋ฅ๊ทผ ๋ชจ์๋ฆฌ๋ฅผ ๊ตฌํํฉ๋๋ค. ์ด์ฒ๋ผ ๋ณดํต ์คํ ๋ฆฌ๋ณด๋์ ์ฝ๋๋ ํจ๊ป ์ฌ์ฉํฉ๋๋ค.
UIViewController์์๋ ์์๋ ๋ณ์์ ์ ๊ทผํ ๋ ๋ณดํต viewDidLoad ๋ด๋ถ์ ๊ตฌํํฉ๋๋ค. ํ์ง๋ง UICollectionViewCell์์ ์์ดํ ์ผ๋ก ๋ฅ๊ทผ ๋ชจ์๋ฆฌ๋ฅผ ๊ฐ์ง ImageView๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ด๋์ ๊ตฌํํ ์ ์์๊น์?
๋จผ์ ์ด๋์ ๋ผ์ด์ ๋ถํฐ ์๊ฐํด๋ณผ ์ ์์ต๋๋ค. UIView์ ์ด๋์ ๋ผ์ด์ ๋ ๋ ๊ฐ์ง๊ฐ ์กด์ฌํฉ๋๋ค.
- init(frame:)
- init(coder:)
์คํ ๋ฆฌ๋ณด๋๋ฅผ ์ฌ์ฉํด UI๋ฅผ ๊ตฌ์ฑํ ํ ํด๋นํ๋ ViewController ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ฉด ํธ์ถ๋๋ ๊ฒ์ ๋ฐ๋ก init(coder:) ์ด๋์ ๋ผ์ด์ ์ ๋๋ค. ํ์ง๋ง ๊ทธ๋ ๋ค๊ณ init(coder:) ์ ๋ฅ๊ทผ ์ด๋ฏธ์ง ํจ๊ณผ๋ฅผ ๊ตฌํํ๋ค๋ฉด ์๋์ ๊ฐ์ ์ค๋ฅ๋ฅผ ๋ง๋๊ฒ ๋ฉ๋๋ค. ๋ฐ๋ก imageView๊ฐ nil์ด๋ผ๋ ์ค๋ฅ ๋ฉ์์ง์ ๋๋ค.
swift:37: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value
imageView๊ฐ ์ nil์ธ์ง์ ๋ํด ์ด์ผ๊ธฐํ๊ธฐ ์ํด์๋ nib file์ ๋ํด ์๊ณ ์์ด์ผ ํฉ๋๋ค.
nib file์ ์ฐฝ ๋ทฐ ์ปจํธ๋กค ๋ฑ์ ํฌํจํ ์ ํ๋ฆฌ์ผ์ด์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ์๊ฐ์ ์์๋ฅผ ์ค๋ช ํฉ๋๋ค. ์ฌ๊ธฐ์ ์ค๋ช ํ๋ค๋ ๊ฒ์, ๋ฐํ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ด์์ ๊ฐ์ฒด๋ฅผ ์ฌ์์ฑํ๊ณ ์ฌ๊ตฌ์ฑํ ์ ์๋ ์ ๋ณด๋ฅผ ๊ฐ๊ณ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ด๋ฌํ nib file๋ก๋ถํฐ nib loading code๋ ๊ฐ์ฒด๋ฅผ ์ธ์คํด์คํํ๊ณ ์ด๊ธฐํํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ nib ๋ชจ๋ ๊ฐ์ฒด๋ค์ ๋ํ ์์๋ ๊ณผ ์ก์ ์ ์ฌ์ฐ๊ฒฐํฉ๋๋ค.
์์ ์ด๊ธฐํ ์์ ์ด ๋ฐ๋ก init(coder:) ์ ํตํด ์ํ๋ฉ๋๋ค. ์ดํ ์์๋ ๊ณผ ์ก์ ์ด ์ฌ์ฐ๊ฒฐ๋๊ธฐ ๋๋ฌธ์ init(coder:) ๋ฉ์๋ ๋ด๋ถ์์๋ “์์ง” imageView๊ฐ ์ฐ๊ฒฐ๋์ง ์์ nil์ด์๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ฌ์ฐ๊ฒฐ๋ ํ์ ์์ ์ ์ฐพ์ ์์ ์ ์ํํ๋ฉด ๋ฉ๋๋ค. nib-loading ์ธํ๋ผ๋ ์ฌ์์ฐ๋์ด ์ด๊ธฐํ๋ ๋ชจ๋ ๊ฐ์ฒด๋ค์๊ฒ awakeFromNib ๋ฉ์์ง๋ฅผ ์ ์ก๋๋ค. ๋ฐ๋ผ์ ๊ฐ์ฒด๊ฐ awakeFromNib ๋ฉ์์ง๋ฅผ ๋ฐ์ ๋๋ ๋ชจ๋ ์์๋ ๊ณผ ์ก์ ์ด ์ฐ๊ฒฐ๋์์์ ๋ณด์ฅํฉ๋๋ค. ๋ฐ๋ผ์ ์์๋ ๋ณ์์ ์ ๊ทผํด ์ถ๊ฐ์ ์ธ ์ฝ๋ ์์ ์ ์ํํ๊ณ ์ถ๋ค๋ฉด awakeFromNib()์์ ๊ตฌํํ๋ฉด ๋ฉ๋๋ค. ์ด๋ฌํ ์ด์ ๋ก ์ผ๋ฐ์ ์ผ๋ก awakeFromNib()์ ๊ฐ์ฒด์ ์ถ๊ฐ์ ์ธ ๋์์ธ์ด ํ์ํ ๋ ์ฌ์ ์๋์ด ๊ตฌํ๋ฉ๋๋ค.
'iOS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ iOS ] AppDelegate SceneDelegate (0) | 2025.01.02 |
---|---|
[ iOS ] Raw String (0) | 2024.12.26 |
[ iOS ] Entry Point (initial view controller) (0) | 2024.12.25 |
[ iOS ] CompositionLayout ๋ฐฉํฅ ์ดํดํ๊ธฐ (0) | 2024.06.27 |
[ iOS ] ๋ฐ์ดํฐ ์ ๋ฌด์ ๋ฐ๋ผ CollectionView UI ๋ณ๊ฒฝํ๊ธฐ with DiffableDataSource, Snapshot (1) | 2024.06.17 |