์๋ ํ์ธ์ Foma ์ ๋๋ค.
์ค๋ ์์๋ณผ ๊ฒ์ ํ ์ด๋ธ๋ทฐ์ ๋๋ค.
iOS ๊ฐ๋ฐ์ ํ๋ฉด์ ๊ฑฐ์ ํ์๋ก ์ฌ์ฉํด์ผํ๋ ํด๋์ค์ด์ฃ .
๊ทธ๋์ ์ ๊ณต๋๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด์ ๋์ถฉ ์ฌ์ฉํ๋๋ฐ ์ค๋์ ์ง์ง ํ๋ํ๋ ์ธ์ธํ๊ฒ ๋ณด๋ฉด์ ์์๊ฐ ๋ณด๊ฒ ์ต๋๋ค.
UITableView
๊ณต์ ๋ฌธ์์๋ "๋จ์ผ ์ด์ ๋ฐฐ์ด๋ ํ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๋ ๋ทฐ" ๋ผ๊ณ ๋์ด์๋ค์.
๋ํ UIScrollView ์ ์์๋ฐ๊ณ ์์ผ๋ฏ๋ก Scroll์ด ๋น์ฐํ ๊ฐ๋ฅํ๊ณ Scroll ๊ด๋ จ๋ ๋ฉ์๋๋ค๋ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค.
Data Source
๊ธฐ๋ณธ์ ์ผ๋ก ํ์ํ ๋ฐ์ดํฐ์์ค ๋ฉ์๋๋ numberOfSections ์ numberOfRowsInSection ๊ฐ ์์ต๋๋ค.
numberOfSections ์ ์น์ ์ ๊ฐ์๋ฅผ numberOfRowsInSection ์ ์น์ ์์ ํ์ ๊ฐฏ์๋ฅผ ์ ํ๋ ๋ฉ์๋ ์ ๋๋ค.
ํ ํ๋ํ๋๋ TableViewCell๋ก ์ด๋ฃจ์ด์ ธ์๋๋ฐ์. ์ด๊ฒ์ ์ด๋ป๊ฒ ๊ตฌํํ ๊น์?
๋ฐ๋ก cellForRowAt ์ด๋ผ๋ ๋ฉ์๋๋ก ํ์ ๊ตฌ์ฑํ ํ ์ด๋ธ๋ทฐ์ ์ ์ ํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
์ด๋ ๊ฒ ๋ณด๋ฉด ์ดํด๊ฐ ์ ์๋ ์๋ ์์ผ๋ ๋๋ผ์ ๋์๋ฅผ ๋์ฐ๋ ๊ฐ๋จํ ์์ ๋ฅผ ๋ณด์ฌ๋๋ฆด๊ฒ์~
๋จผ์ ๊ฐ ๋๋ผ์ ๋์ ๊ทธ๋ฆฌ๊ณ ๋์๋ค์ ๋ด๋ ๋ฐฐ์ด์ ๋ง๋ค์ด์ค๋๋ค.
์๋์ ๊ฐ์ด ์น์ ์ countries์ ๊ฐฏ์๋งํผ return ํด์ค๋๋ค.
๊ฐ ํ์ ๊ฐฏ์๋ ๋์๋ค ์์ ๋ค์ด์๋ ๋์์ ๊ฐฏ์๋งํผ return ํด์ค๋๋ค.
ํ์ดํ์ ๊ฐ ๋๋ผ์์ ์๋ ์ด๋ฆ์ผ๋ก return ํด์ค๋๋ค.
๊ฐ ํ์ ์ ์ ํ ์ด๋ธ๋ทฐ์ ์ ๋ง๋ค์ด์ฃผ์ ๋ค ๋์ ์ด๋ฆ์ ๋์ธ Label๋ก ๊ตฌ์ฑํด์ค๋๋ค.
๊ทธ ๋ค์ dequeueReusableCell ์ ์ด์ฉํด์ ์์์ ๋ง๋ค์ด์ฃผ์ TableViewCell ๋ก ๊ตฌ์ฑํด์ค๋๋ค.
๊ทธ๋ฆฌ๊ณค cell์์ ์๋ label์ cities์์ ์น์ ์ ๊ฐ ๋์ ์ด๋ฆ์ผ๋ก ํด์ค๋๋ค.
์ฌ๊ธฐ์ dequeueReusableCell์ด๋?
์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ ์ด๋ ๋ป์ผ๋ก identifier๋ฅผ ์๋ณ์๋ก ์ฌ์ฉํ๋ ์ ์ ์ฌ์ฌ์ฉํ๊ฒ ๋ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ ์ identifier๋ ์ด๋์ ์ ํ์ง?
์คํ ๋ฆฌ๋ณด๋๋ก ์ด๋ํ์ ์ ํ ์ด๋ธ๋ทฐ์ ์ ํญํ๊ณ identifier๋ฅผ ์ ํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
์ด๋ ๊ฒ ๋ชจ๋ ํ๊ณ ์คํ์์ผ๋ณด๋ฉด ์๋์ ๊ฐ์ด ์น์ ์๋ ๋๋ผ์ด๋ฆ ๊ทธ๋ฆฌ๊ณ ์ด๋ฃจ์ด์ง ํ๋ค์ ๋์๋ค๋ก ์ด๋ฃจ์ด์ง๊ฒ ๋ฉ๋๋ค.
๋ํ ํค๋๋ทฐ์ ํธํฐ๋ทฐ๋ฅผ ์ด์ฉํ์ฌ ๊ฐ ํ ์ด๋ธ๋ทฐ์ ๊ฐ ๋งจ ์ ๋ถ๋ถ๊ณผ ๋งจ ์๋ ๋ถ๋ถ์ ๊ตฌ์ฑํ ์๋ ์๋๋ฐ์.
์๋์ ๊ฐ์ด ์คํ ๋ฆฌ๋ณด๋์ headerView์ footerView๋ฅผ ๋ง๋ค์ด์ฃผ์๊ณ
ํ ์ด๋ธ๋ทฐ ์ปจํธ๋กค๋ฌ์ ์ฐ๊ฒฐํด์ฃผ์ ๋ค tableHeaderView๋ฅผ headerView๋ก tableFooterView๋ฅผ footerView๋ก ํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ฉด ์๋์ ๊ฐ์ด ํค๋๋ทฐ์ ํธํฐ๋ทฐ๊ฐ ๋งจ ์์ ์๋์ ๊ตฌ์ฑ๋๊ฒ ๋ฉ๋๋ค.
Height
๊ทธ๋ ๋ค๋ฉด ๊ฐ ํ์ ํค๋,๋ก์ฐ,ํธํฐ์ ๋์ด๋ ์ด๋ป๊ฒ ์ ํ ๊น์?
ํค๋๋ heightForHeaderInSection ๋ฉ์๋๋ฅผ
๋ก์ฐ๋ heightForRowAt ๋ฉ์๋๋ฅผ
ํธํฐ๋ heightForFooterInSection ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค.
์๋์ ๊ฐ์ด ์ค์ ํด์ฃผ์๋ฉด
๋ก์ฐ๋ฅผ 100์ผ๋ก ์ฃผ์ด์ ํ์คํ ์ปค์ง๊ฒ ๋ณด์ด์๋์?
Delegate
๊ทธ๋ ๋ค๋ฉด ์ด์ ๊ฐ ํ์ ์ ์ ํญํ์ ๋๋ ์ฌ๋ผ์ด๋ ๋ฑ์ ํ๋ ๋๋ฆฌ๊ฒ์ดํธ๋ฅผ ์ดํด๋ด ์๋ค.
๊ฐ์ฅ ๋จผ์ ๊ฐ ๋ก์ฐ๋ฅผ ํญํ์ ๋๋ didSelectRowAt ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
cellForRow(at:) ๋ฉ์๋์ ํจ๊ป ์ฌ์ฉํ์ฌ ์ ์ ์ ํํ์ ๋ ๋ฐฐ๊ฒฝ์์ ๋ฐ๊ฟ๋ณด๋ ์์ ๋ฅผ ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค.
์ ํ์ ํด์ ํ์ ๋์ ๋ฉ์๋๋ ์์ต๋๋ค.
๋ฐ๋ก didDeselectRowAt ๋ฉ์๋์ธ๋ฐ์ ์ด๊ฒ์ ์ฌ์ฉํ์ฌ ์ ํ์ ํ๋๋ง ๊ฐ๋ฅํ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ฒ ํ ์ ์์ต๋๋ค.
๋ฐ๋ก ์๋์ฒ๋ผ ๋ง์ด์ฃ .
๋ํ ์ผ์ชฝ์ผ๋ก ์ค์์ดํ ํ์ ๋ ์ญ์ ํ ์ ์๋ ํ ์ด๋ธ๋ทฐ๋ฅผ ๋ง์ด ๋ณด์ จ์๊ฑฐ์์.
๊ทธ๊ฑด ๋ฐ๋ก canEditRowAt ์ commit editingStyle: UITableViewCell.EditingStyle๋ฅผ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ฉด ์๋์ฒ๋ผ ์ค์์ดํ ํ์ ๋ ์ญ์ ๋ฒํผ์ ๋ง๋ค ์๊ฐ ์์ต๋๋ค.
'๐ iOS > iOS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[iOS ๋ฉด์ ์ง๋ฌธ] Delegate๋ retain์ด ๋ ๊น? (0) | 2020.12.23 |
---|---|
[iOS ๋ฉด์ ์ง๋ฌธ] GCD๋? - ๊ฐ๋ (0) | 2020.12.18 |
[iOS ๋ฉด์ ์ง๋ฌธ] ์ ๋ค๋ฆญ์ด๋? (Swift Generic) (0) | 2020.12.15 |
[iOS] ํด๋์ค์ด๋ฆ ํ๋ฒ์ ๋ชจ๋ ๋ฐ๊พธ๊ธฐ (Refactor Class name) (0) | 2020.12.14 |
[iOS ๋ฉด์ ์ง๋ฌธ] Cocoa Touch Framework๋? (0) | 2020.12.08 |
๋๊ธ