ReusableView Protocol
๊ธฐ์กด์ cell ๋ง๋ค id๋ฅผ ํ์ ํ๋กํผํฐ๋ก ๋ง๋ค์ด์ ๊ด๋ฆฌํ๋ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ์ด ํ๋กํ ์ฝ๋ก ๊ด๋ฆฌ ๊ฐ๋ฅ
protocol ReusableViewProtocol {
static var reuseIdentifier: String { get }
}
extension UICollectionViewCell: ReusableViewProtocol {
static var reuseIdentifier: String {
return String(describing: self)
}
}
extension UITableViewCell: ReusableViewProtocol {
static var reuseIdentifier: String {
return String(describing: self)
}
}
prepareForReuse
์ฌ์ฌ์ฉ ์ ์ด ์ฌ์ฌ์ฉ ๋๊ธฐ ์ ์ค๋นํ ์ ์๋๋ก ๋์์ฃผ๋ ๋ฉ์๋์. ์ ์ ์ ์์ ์ผ๋ก ์ด๊ธฐํ ํด์ฃผ์ง ์์ผ๋ฉด ๊ธฐ์กด ์ฌ์ฉ๋๋ ์ ์ ์ปจํ ์ธ ๊ฐ ์ฌ์ฌ์ฉ ๋๋ฉด์ ๋ค๋ฅธ ์ ์๋ ์ํฅ์ ์ฃผ๊ฒ ๋๋ค. ์ ์ dequeue ํด์ค๊ณ return ํ๊ธฐ ์ ์ ํด๋น ๋ฉ์๋๊ฐ ํธ์ถ๋๋ค.
override func prepareForReuse() {
super.prepareForReuse()
}
๋จ์ํ contents์ ๋ํ ๋ด์ฉ๋ค์ ๋ค ์ด๊ธฐํํด์ฃผ๋ฉด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์๋๋ฐ ๊ณต์ ๋ฌธ์๋ฅผ ๋ค์ฌ๋ค ๋ณด๋ฉด ๋ด์ฉ์ด ์๊ฐํ๋ ๊ฒ๊ณผ๋ ์ข ๋ค๋ฅด๋ค. ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด ์ปจํ ์ธ ์ ๊ด๋ จ์ด ์๋ ์์ฑ(ex. ์ํ ๊ฐ, ํธ์ง ๋๋ ์ ํ ์ํ ๋ฑ)์ ์ฌ์ค์ ํ๋ผ๊ณ ๋์ ์๋ค. ์ปจํ ์ธ ์ ๊ด๋ จ๋ reset(์ฌ์ค์ ) ์์ ์ cellForRowAt์์ ํด์ฃผ๋ ๊ฒ์ด ๋ ๋์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ ๋ค.
Autoresizing Mask
Autoresizing Mask๋ ๋์ ๋ ์ด์์์ ๊ตฌ์ฑํ ์ ์๋๋ก Apple์ด ๋์ ํ ์์ ๋ฐฉ์์ ๊ธฐ๋ฅ์ด๋ค. ๋ถ๋ชจ ๋ทฐ๊ฐ ์ปค์ง๊ฑฐ๋ ์์์ง์ ๋ฐ๋ผ์ ์๋ธ ๋ทฐ์ ํฌ๊ธฐ๋ ์์น๋ฅผ ์กฐ์ ํ๋ ๋ฐฉ์์ ๊ฒฐ์ ํ๊ฒ ๋๋ค. Autoresizing๊ณผ ๊ณผ Autolayout์ ๋์์ ์ ์ฉํ๊ณ ์ ํ๋ฉด ๋ ์ด์์ ์ถฉ๋์ด ๋ฐ์ํ ์ ์๋ค. ๊ทธ ์ด์ ๊ฐ Autoresizing Mask๋ก ๊ฒฐ์ ๋ ๋ ์ด์์์ Autolayout์ Constraints๋ก ๋ณํ๋๊ธฐ ๋๋ฌธ์ด๋ค.
translatesAutoresizingMaskIntoConstraints
์ฝ๋ ๊ธฐ๋ฐ์ ์ฌ์ฉํ๊ฒ ๋ ๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ์์ฑ์ด true๋ก ์ค์ ๋๊ณ , ์คํ ๋ฆฌ๋ณด๋์ Autolayout์ด ์ ์ฉ๋ ๋ทฐ๋ ์๋์ผ๋ก false๊ฐ ์ค์ ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ฝ๋ ๊ธฐ๋ฐ์ผ๋ก ๋ ์ด์์์ ๊ตฌ์ฑํ๊ณ ์ ํ๋ค๋ฉด ์์ ์์ฑ์ false๋ก ๋ง๋ค์ด์ฃผ์ด์ผ ๋ ์ด์์์ ์ ์์ ์ผ๋ก ์ก์ ์ ์๋ค.
'๐ฑ SeSAC' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SeSAC] 220812 TIL (0) | 2022.08.15 |
---|---|
[SeSAC] 220811 TIL (0) | 2022.08.15 |
[SeSAC] 220809 TIL (0) | 2022.08.12 |
[SeSAC] 220808 TIL (0) | 2022.08.12 |
[SeSAC] 220805 TIL (2) | 2022.08.10 |