์ ์ ์ธํฐํ์ด์ค์ ์ปฌ๋ ์ ๋ทฐ๋ฅผ ์ถ๊ฐํ ๋, ์ฑ์ ์ฃผ์ ์ญํ ์ ์ปฌ๋ ์ ๋ทฐ์ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๊ฒ์ด๋ค.
์ปฌ๋ ์ ๋ทฐ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์จ ๋ค์ ๋ฐ์ดํฐ ์์ค ํ๋กํผํฐ์ ์ ์ฅํ๋ค.
UICollectionViewDiffableDataSource
์ปฌ๋ ์ ๋ทฐ์ ๋ฐ์ดํฐ ๋ฐ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ๋ํ ์ ๋ฐ์ดํธ๋ฅผ ๊ฐ๋จํ๊ณ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๋ฐ ํ์ํ ๋์์ ์ ๊ณตํ๋ค.
UICollectionViewDataSource
๋ํ ์ด ํ๋กํ ์ฝ์ ์ฑํํ์ฌ ๋ฐ์ดํฐ ์์ค ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์๋ค.
์ปฌ๋ ์ ๋ทฐ์ ๋ฐ์ดํฐ๋ ์น์ ์ผ๋ก ๊ทธ๋ฃนํํ ์ ์๋ ๊ฐ๊ฐ์ ์์ดํ ๋ค์ ์กฐ์งํ์ฌ ๋ณด์ฌ์ฃผ๋ ์ญํ ์ ํ๋ค. ํ๋์ ์์ดํ ์ ๋ฐ์ดํฐ์์ ๊ฐ์ฅ ์์ ์ ๋์ด๋ค. ์๋ฅผ ๋ค์ด ์ฌ์ง์ฑ์ ํ๋์ ์ฌ์ง์ด ์์ดํ ์ด ๋ ์ ์๋ค.
UICollectionViewCell
ํด๋น ํด๋์ค์ ์ธ์คํด์ค์ธ ์ ์ ์ฌ์ฉํ์ฌ ํ๋ฉด์ ํญ๋ชฉ์ ํ์ํ๋ค.
์ ์ ์ธํฐํ์ด์ค์ ์ปฌ๋ ์
๋ทฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋, ์๊ฐ์ ์ผ๋ก ๋ณด์ฌ์ง๋ ํ๋ฉด๊ณผ ํด๋นํ๋ ์์ดํ
์ ๋ฐ์ดํฐ ์์ค์ ์ ์ ํ ๋งค์นญ์ด ๋๊ณ ์๋์ง ํ์ธํด์ผ๋ง ํ๋ค. ์ด ๊ณผ์ ์ UICollectionViewDiffableDataSource
๋ ์๋์ ์ผ๋ก ์งํํ์ง๋ง, ๋ง์ฝ ์ปค์คํ
๋ฐ์ดํฐ ์์ค๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ์ปฌ๋ ์
์์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ, ์ญ์ ๋๋ ์ฌ์ ๋ ฌํ ๋๋ง๋ค UICollectionView์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ์
์ ์ฝ์
, ์ญ์ ๋ฐ ์ฌ์ ๋ ฌํด์ผ ํ๋ค.
๋ ์ด์์
๋ ์ด์์์ ์ปฌ๋ ์ ๋ทฐ ๋ด๋ถ์ ์ปจํ ์ธ ์ ์๊ฐ์ ๋ฐฐ์ด์ ์ ์ํ๋ค.
UICollectionViewLayout ํด๋์ค์ ํ์ ํด๋์ค์ธ ๋ ์ด์์ ๊ฐ์ฒด๋ ์ปฌ๋ ์ ๋ทฐ ๋ด๋ถ์ ๋ชจ๋ ์ ๊ณผ ๋ณด์กฐ ๋ทฐ์ ๊ตฌ์ฑ๊ณผ ์์น๋ฅผ ์ ์ํ๋ค
์ปฌ๋ ์ ๋ทฐ๋ฅผ ๋์ ์ธ ๋ ์ด์์์ผ๋ก ์ค์ ํ ์ ์๋ค.
collectionViewLayout
๋ ์ด์์์ collectionViewLayout์ ํ๋กํผํฐ์ ์ ์ฅ๋๋ค. ์ด ์์ฑ์ ์ค์ ํ๋ฉด ๋ณ๊ฒฝ ์ฌํญ์ ์ ๋๋ฉ์ด์ ํจ๊ณผ๋ฅผ ์ฃผ์ง ์๊ณ ๋ ์ด์์์ด ์ฆ์ ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
setCollectionViewLayout(_:animated:completion:)
๋ ์ด์์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ์ ๋๋ฉ์ด์ ํจ๊ณผ๋ฅผ ์ ์ฉํ๋ ค๋ฉด ํด๋น ๋ฉ์๋๋ฅผ ํธ์ถ ํ๋ฉด ๋๋ค.
startInteractiveTransition(to:completion:)
์ ์ค์ฒ ์ธ์ ๋๋ ํฐ์น ์ด๋ฒคํธ์ ์ํด ๊ตฌ๋๋๋ ์ธํฐ๋ ํฐ๋ธ ์ ํ์ ์์ฑํ๋ ๋ฉ์๋, ์ ํ ์งํ ์ํฉ์ ์ถ์ ํ๊ธฐ ์ํด ์ ์ค์ฒ ์ธ์๊ธฐ ๋๋ ์ด๋ฒคํธ ์ฒ๋ฆฌ ์ฝ๋์ ํจ๊ป ์๋ํ๋ ์ค๊ฐ ๋ ์ด์์์ ๋๋ค. ์ด๋ฒคํธ ์ฒ๋ฆฌ ์ฝ๋์์ ์ ํ์ด ์๋ฃ๋์๋ค๊ณ ํ๋จํ๋ฉด finishInteractiveTransition()
๋๋ cancelInteractiveTransition()
๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ์ค๊ฐ ๋ ์ด์์ ์ ์ ๊ฑฐํ๊ณ ์๋ํ ๋ ์ด์์์ ์คํํ๋ค.
์ , ๋ณด์กฐ ๋ทฐ
์ปฌ๋ ์ ๋ทฐ์ ๋ฐ์ดํฐ ์์ค๋ ํญ๋ชฉ์ ๋ํ ์ฝํ ์ธ ์ ํด๋น ์ฝํ ์ธ ๋ฅผ ํ์ํ๋ ๋ฐ ์ ๊ณผ ์ถ๊ฐ์ ์ธ ๋ทฐ๋ฅผ ๋ชจ๋ ์ ๊ณตํ๋ค.
์ปฌ๋ ์ ๋ทฐ๊ฐ ์ฒ์์ผ๋ก ์ปจํ ์ธ ๋ฅผ ๋ก๋ํ ๋ ๋ฐ์ดํฐ ์์ค๊ฐ ๊ฐ๊ฐ์ ์์ดํ ์ ๋ํ ๋ทฐ๋ฅผ ์ ๊ณตํ๋๋ก ์์ฒญํ๋ค.
์ปฌ๋ ์ ๋ทฐ๋ ์ฌ์ฌ์ฉ์ ์ํด ๋๊ธฐ์ด ๋๋ ๋ทฐ์ ๋ชฉ๋ก์ ์ ์งํ๋ค.
dequeueReusableCell(withReuseIdentifier:for:)
์ปฌ๋ ์ ๋ทฐ์์ ์์ดํ ์ ๋ํ ์ ์ ๊ฐ์ ธ์ค๋ ค๋ฉด ํด๋น ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผํจ
dequeueReusableSupplementaryView(ofKind:withReuseIdentifier:for:)
๋ ์ด์์์์ ์์ฒญํ ๋ณด์กฐ ๋ทฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฉ์๋
์ด ๋ฐฉ๋ฒ ์ค ํ๋๋ฅผ ํธ์ถํ๊ธฐ ์ ์ ํด๋น ๋ทฐ๊ฐ ์์ง ์กด์ฌํ์ง ์๋๋ค๋ฉด ์ด๋ป๊ฒ ๋ทฐ๋ฅผ ์์ฑํ ๊ฒ์ธ์ง ์ปฌ๋ ์ ๋ทฐ์๊ฒ ์๋ ค์ผ ํ๋ค. ์ด๋ฅผ ์ํด ์ปฌ๋ ์ ๋ทฐ์ ํด๋์ค ๋๋ nibํ์ผ์ ๋ฑ๋กํด์ฃผ์ด์ผ๋ง ํ๋ค.
register(_:forCellWithReuseIdentifier:)
ํด๋์ค ๋๋ nib ํ์ผ์ ๋ฑ๋กํ๋ ๋ฉ์๋, ํ๋ก์ธ์ค์ ์ผ๋ถ๋ก ๋ทฐ์ ๋ชฉ์ ์ ์๋ณํ๋ ์ฌ์ฌ์ฉ ์๋ณ์๋ฅผ ์ง์ ํ๋ค. ์ด๊ฒ์ ๋์ค์ ๋ทฐ๋ฅผ ๋๊ธฐ์ด์์ ๋นผ๋ผ ๋ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋์ผํ ๋ฌธ์์ด์ด๋ค.
๋ฐ์ดํฐ ์์ค ๋ฉ์๋์์๋ ์ ์ ํ ๋ทฐ๋ฅผ ๋๊ธฐ์ด์์ ๋นผ๋ธ ํ ํด๋น ๋ด์ฉ์ ๊ตฌ์ฑํ๊ณ ์ฌ์ฉํ ์ ์๋๋ก ์ปฌ๋ ์ ๋ทฐ๋ก ๋ฐํํ๋ค. ๋ ์ด์์์์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์จ ํ ์ปฌ๋ ์ ๋ทฐ๋ ์ด๋ฅผ ๋ทฐ์ ์ ์ฉํ๊ณ ํ์ํ๋ค.
Data Prefetching
์ปฌ๋ ์ ๋ทฐ๋ ์๋ต์ฑ์ ํฅ์์ํค๊ธฐ ์ํ ๋ ๊ฐ์ง ํ๋ฆฌํ์นญ ๊ธฐ์ ์ ์ ๊ณตํ๋ค.
Cell prefetching
(default Set)์ ํด๋น ์ ์ด ํ์ํ ๋๋ณด๋ค ๋ฏธ๋ฆฌ ์ ์ ์ค๋นํ๋ ์ญํ ์ ํ๋ค. ์๋ฅผ ๋ค์ด ์ปฌ๋ ์ ๋ณด๊ธฐ์ ๋ง์ ์์ ์ ์ด ๋์์ ํ์ํ ๊ฒฝ์ฐ๊ฐ ๋ ์ ์๋ค. ๊ทธ๋ฌ๋ฏ๋กCell rendering
์ ์ฌ๋ฌ ๋ ์ด์์์ ๊ฑธ์ณ ๋ถ์ฐ๋์ด ์ด๋ฃจ์ด์ง๊ณ ์ด๋ ๋ ๋ถ๋๋ฌ์ด ์คํฌ๋กค์ ๊ฐ๋ฅ์ผ ํ๋ค.Data prefetching
์ ์ปฌ๋ ์ ๋ทฐ์ ๋ฐ์ดํฐ ์๊ตฌ์ฌํญ์ ์ ์ด ์์ฒญํ๊ธฐ ๋ณด๋ค ๋จผ์ ์๋ฆผ ๋ฐ์์ผ๋ก์จ ์ ์ ์ปจํ ์ธ ๊ฐ ๋น์ฉ์ด ํฐ ๋ฐ์ดํฐ ๋ก๋ฉ ํ๋ก์ธ์ค์ ์์กดํ๋ ๊ฒฝ์ฐ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ ์ ์๋ค(๋คํธ์ํฌ ์์ฒญ).
'๐ฑ iOS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฉด์ ์คํฐ๋ Day2 (Static Dispatch, Dynamic Dispatch, DB) (0) | 2022.10.27 |
---|---|
๋ฉด์ ์คํฐ๋ Day1(Frame, Bounds, ์๋ฎฌ๋ ์ดํฐ) (0) | 2022.10.25 |