tableView๋ฅผ ๋ค๋ฃจ๋ค๋ณด๋ฉด ์ ์ ํฌ๊ธฐ๋ฅผ ์ ํ๋ ์ผ์ด ์๋นํ ๊ท์ฐฎ์ ๋๊ฐ ์๋ค. ์ด๋ป๊ฒ ํ๋ฉด ๋์ ์ธ cell์ ๋ง๋ค ์ ์๋์ง ํ์ธํด๋ณด์.
Working with Self-Sizing Table View Cells
์ ํ์์๋ ์ผ๋จ ์ด ์ต์
์ ์ฌ์ฉํ์ง ๋ง๋ผ๊ณ ํ๋ค. tableViewDelegate์ ์๋ tableView:heightForRowAtindexPath
๋ฅผ ์ฌ์ฉํด์ ์ฒ๋ฆฌํ๋ผ๊ณ ํ๋ค. ์๋ง ์ฑ๋ฅ์ ๋ฌธ์ ์ผ ๊ฐ๋ฅ์ฑ์ด ํฌ๋ค.
ํ์ง๋ง ์ฐ๋ฆฌ๋ ์ด๋ ๊ฒ ๋จ์ํ ์ฑ๋ง ๋ง๋๋ ๊ฒ์ด ์๋๋ค. ๋ฉ์ ์ ๊ฐ์ ๊ฒฝ์ฐ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ๋ text๊ธธ์ด์ ๋ฐ๋ผ cell height๊ฐ ๋ณ๊ฒฝ๋์ด์ผ ํ๋ค. ์๋๋ฉด ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ํ ์คํธ๊ฐ ๊ฐ๋ ค์ ธ์ ์ฝ๊ธฐ ์ด๋ ค์์ง์ง๋ ๋ชจ๋ฅธ๋ค.
๋ฐฉ๋ฒ
๋๊ฐ์ง property๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋จํ๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค.
tableView.rowHeight
tableView.estimatedRowHeight
.rowHeight
์๋, ๋ ์ด์ ๋ถํฐ ์ปจํ
์ธ ์ ๋ง๊ฒ ๊ณ์ฐํด์ cell ๋์ด ์ ์ฉํ ๊ฑฐ์ผ! ๋ผ๊ณ ์๋ ค์ฃผ๊ณ , .estimatedRowHeight
์๋ ๋์ถฉ ๊ฐ๋ฐ์๊ฐ ์ง์ํ cell height๋ฅผ ์๋ ค์ค๋ค. ์ ๊ตณ์ด ์๋ ค์ค๊น. ์ด์ฐจํผ ์คํ ๋ ์ด์์์ด ๊ณ์ฐํ ํ
๋ฐ?
Providing a nonnegative estimate of the height of rows can improve the performance of loading the table view. If the table contains variable height rows, it might be expensive to calculate all their heights when the table loads. Using estimation allows you to defer some of the cost of geometry calculation from load time to scrolling time.
์์ด ์๋ ์ถ์ ์น๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด tableView์ ์ฑ๋ฅ์ ์ํฅ์ ๋ผ์น๋ค๊ณ ํ๋ค. ๋ง์ฝ์ row๊ฐ ๋ง๋ค๋ฉด, autolayout ์์ฒด๋ฅผ ๊ณ์ฐํ๋ ๊ฒ์ด ๋งค์ฐ cost๊ฐ ๋์ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ฆ, ์ถ์ ์น๋ฅผ ์ ๊ณตํ๋ ๊ฒ ์์ฒด๊ฐ ์ฑ๋ฅ์ ์ผ๋ก ๋ ์ข๋ค๋ ๊ฒ. ์คํฌ๋กคํ๊ฒ ๋๋ฉด์ ๋ณด์ด๋ ํ๋ฉด๊ณผ ์ฐ๊ณ๋ ๋ฌธ์ ์ธ ๋ฏ ํ๋ค.
220419 ์ถ๊ฐ
Refactoring ์ ๋ฌด ์ค, cell์ ๋์ด๊ฐ ๋ฐ์์ด ๋์ง ์๋ ๋ฌธ์ ๊ฐ ์์๋ค. viewModel๋ก ๋ถํฐ data๋ฅผ ๋ก๋ํ๊ณ , subscriber๊ฐ ์ด๋ฅผ ๋ฐ์ ๋ค์ ํ๋ฉด์ ๊ทธ๋ ค์ฃผ๊ธฐ๋ง ํ๋ฉด ๋๋๋ฐ, ๋ค์ํ ํ๋ฉด์์ ํด๋น tableView๊ฐ ๋ณด์ฌ์ผ ํด์ tableView์ ๋์ ์ธ ๋ณํ๊ฐ ํ์ํ๋ค.
์ด์ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ด ํ๋ฉด์ด appearํ๋ ์์ ์ constraint๋ฅผ ๋ฐ์ํ์ฌ ํด๊ฒฐํ๋ค.
ํ์ง๋ง ์๋ ๋ณด์ฌ์ ธ์ผ ํ๋ cell์ ํฌ๊ธฐ๊ฐ 60์ผ ๋, ๊ณ์ํด์ 44์ ํฌ๊ธฐ๋ก ๋ณด์ฌ์ง์ ํ์ธํ๋ค. ๋ฌธ์ ๋ฅผ ์ดํด๋ณด๋, ์ด์ ์์ ์๊ฐ ํด๋น ๋ถ๋ถ์ ๋ช ์ํ์ง ์์์์ด ํ์ธ๋์๋ค.
์ ์ฝ๋๋ ์์๋ฐ์ UITableView์ด๋ค. overrideํ์ฌ ๋ณ๊ฒฝํ์ง ์์ ๋ฐ์ํ ๋ฌธ์ ์ด๋ค. ์ค์ ๊ฒช์ด๋ณด๋ ๋ฐฐ์ฐ๋๊ฒ ์ค์ํ๋ค๋ ์๊ฐ์ด ๋ ๋ค.