[iOS] UITableView + UITableViewCell (1): ํ ์ด๋ธ ๋ทฐ ์ฌ์ฉํด๋ณด๊ธฐ
UITableView
UITableView์ ํ ์ด๋ธ ํํ๋ก ํ ์ค์ ํ๋์ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ฉ๋๋ก ์ฌ์ฉ๋๋ ๋ทฐ์ ๋๋ค. ์์ดํฐ์ ์ค์ ์ฑ์ด๋, ์ฐ๋ฝ์ฒ ์ฑ์ด UITableView๋ฅผ ์ฌ์ฉํ๋ ๋ํ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค. ์ค๋์ UITableView์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋ ๊ณผ ์ฌ์ฉ๋ฐฉ๋ฒ๋ค์ ์ ๋ฆฌํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
UITableView ๊ตฌ์ฑ์์
๋จผ์ ํ ์ด๋ธ ๋ทฐ๋ฅผ ๊ตฌ์ฑํ๋ ์์๋ค์ ์์๋ณด๊ฒ ์ต๋๋ค.
Section๊ณผ Row
๋ชจ๋ ํ ์ด๋ธ ๋ทฐ๋ ์น์ ๊ณผ ํ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์น์ ์ ์ปจํ ์ธ ๋ค์ ๋ถ๋ฅ๋ฅผ ์๋ฏธํ๊ณ ํ์ ๊ฐ ์ฝํ ์ธ ๋ฅผ ๋ณด์ฌ์ฃผ๋ ํ ์ด๋ธ์ ํ์ ์๋ฏธํฉ๋๋ค. ๊ฐ ํ์๋ ๋๋ถ๋ถ ์๋ก ๋ค๋ฅธ ์ฝํ ์ธ ๊ฐ ๋ค์ด๊ฐ๊ฒ ์ฃ ? ๊ทธ๋์ ๊ฐ ํ์ ๋ทฐ๋ก ํํํ ์ ์๊ณ ์ด ๋ทฐ๋ฅผ UITableViewCell์ด๋ผ๊ณ ํฉ๋๋ค.
UITableViewCell
UITableViewCell์ ์์ ๊ฐ์ด ๊ตฌ์ฑ๋ฉ๋๋ค. ํ ์ด๋ธ ๋ทฐ๊ฐ ์ด๋ค ์ํ์ธ์ง์ ๋ฐ๋ผ, ๊ทธ๋ฆฌ๊ณ ๊ฐ ์ ์ด ์ด๋ค ๋ด์ฉ์ ๋ด๊ณ ์๋์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ๊ตฌ์ฑ๋ ์ ์์ต๋๋ค. ๋ง์ฝ ๊ฐ ์ ์ด ์ฝํ ์ธ ์ ๋ด์ฉ๋ง์ ๋ด๊ณ ์๋ค๋ฉด, ์ฒซ ๋ฒ์งธ์ธ Content Only ๊ตฌ์ฑ์ฒ๋ผ ๋ด์ฉ๋ง ๋ณด์ฌ์ฃผ๋ฉด ๋๊ฒ ์ฃ .
์ด ์ฐ๋ฝ์ฒ ์ฑ ์ฒ๋ผ์!
๊ทธ๋ผ with accessory view๋ ์ด๋จ๊น์?
Accessory View๋ ์ฐ๋ฝ์ฒ ์ฑ์์ ์ฝ๊ฒ ํ์ธํ ์ ์์๋๋ฐ์, ์ ์ ๊ฐ์ฅ ์ฐ์ธก์ ์๋ ํ์ดํ, ์ ๋ณด ๋ฑ๊ณผ ๊ฐ์ ์์ ์์ด์ฝ์ด Accessory View์ ํด๋นํฉ๋๋ค.
Edit Mode๋ ์ฐ๋ฝ์ฒ ์ฑ์์ ํ์ธํด๋ณผ ์ ์์ต๋๋ค! ์ฐ์ธก ์๋จ์ ํธ์ง ๋ฒํผ์ ๋๋ฅด๋ฉด ๋ง ๊ทธ๋๋ก ํธ์ง ๋ชจ๋๋ก ๋ค์ด๊ฐ๊ฒ ์ฃ ? ํ๋ฒ ๋๋ฌ๋ณด๊ฒ ์ต๋๋ค.
์ด๋ ๊ฒ ํตํ๋ด์ญ์ ํธ์งํ ์ ์๋ ๋ชจ๋๊ฐ ๋๋ฉด์ ์ญ์ ๋ฅผ ํ ์ ์๋ Delete Control์ด ์์ฑ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
๊ทธ๋ผ ์ด์ UITableView๋ฅผ ์ฌ์ฉํ๋ ๊ฐ๋จํ ์ฑ์ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค!
UITableView ์ถ๊ฐํ๊ธฐ
XCode ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ๊ฒ์์ ํด๋ณด๋ฉด Table View์ Table View Controller๋ฅผ ๋ชจ๋ ์ถ๊ฐํ ์ ์๋๋ก ๋์ด์์ต๋๋ค. Table View๋ ๊ธฐ์กด ์ปจํธ๋กค๋ฌ์ ์๋ก์ด ๋ทฐ๋ก ํ ์ด๋ธ ๋ทฐ๋ฅผ ์ถ๊ฐํ๊ณ ์ ํ ๋ ์ฌ์ฉํ ์ ์๊ณ , Table View Controller๋ ํ ์ด๋ธ ๋ทฐ๋ฅผ ์ฌ์ฉํ๋ ์๋ก์ด ์ฌ์ ๋ง๋ค๊ณ ์ ํ ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฅ ํฐ ์ฐจ์ด๋ Table View๋ ํ๋ฉด์ ๊ฐ๋ ์ฑ์ฐ์ง ์๊ณ ๋ทฐ์ ์ผ๋ถ๋ถ์ ํ ์ด๋ธ ๋ทฐ๋ฅผ ๋ฃ์ ์ ์๋ค๋ ๊ฒ์ด์ฃ .
์ฐ๋ฆฌ๋ ์ผ๋จ ํ ์ด๋ธ ๋ทฐ๋ง ๋ณด์ฌ์ค ์๊ฐ์ด๋ Table View Controller๋ฅผ ์ ํํ๊ฒ ์ต๋๋ค.
๊ธฐ์กด์ ์๋ ViewController๋ฅผ ์ญ์ ํ๊ณ , ์๋ก์ด ํ ์ด๋ธ ๋ทฐ ์ปจํธ๋กค๋ฌ๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์๋๋ฉด ๋ฐ๋ก ํ ์ด๋ธ ๋ทฐ๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด์ ์ค๋ฅธ์ชฝ ์ธ์คํํฐ์์ ์์ ์ ์ด ๋ทฐ ์ปจํธ๋กค๋ฌ๋ฅผ ์ฌ์ฉํ๊ฒ ๋ค๋ ์ต์ ์ ์ฒดํฌํ ๊ฒ์!
๊ทธ๋ผ ์ด์ ๋ณธ๊ฒฉ์ ์ผ๋ก ์ด๊ฒ์ ๊ฒ ๋ง์ ธ๋ณผ๊น์?
Static Cell Content ์ฌ์ฉํ๊ธฐ
๋จผ์ ๋ฐํ์์ ๋์ ์ผ๋ก ์ ์ ์ถ๊ฐํ๊ฑฐ๋ ๋ด์ฉ์ ๋ฐ๊ฟ ์ ์๋ Static Cell๋ถํฐ ์ฌ์ฉํด๋ณด๊ฒ ์ต๋๋ค. ์ปค์คํฐ๋ง์ด์ง์ ์ต์ํ๋๊ฒ ์ง๋ง ๋ณํ์ง ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉ์์๊ฒ ๊ณ์ ๋ณด์ฌ์ค์ผ ํ๋ ํ ์ด๋ธ ๋ทฐ๋ผ๋ฉด ์ ์ฉํ๊ฒ ์ธ ์ ์๊ฒ ์ฃ ?
๋ง๋ค์ด์ง ๋ทฐ ์ปจํธ๋กค๋ฌ์์ Table View๋ฅผ ์ ํํ๋ฉด ์ฐ์ธก ์ธ์คํํฐ์ Content๋ฅผ ์ ํํ ์ ์๋ ์ต์ ์ ํ์ธํ ์ ์์ต๋๋ค. ์ด ์ต์ ์ Static Cells๋ก ๋ณ๊ฒฝํด๋ด ์๋ค!
๋ณ๊ฒฝํ๊ณ ์คํํด๋ณด๋ฉด ์ด๋ ๊ฒ ๋น ํ ์ด๋ธ์ด ๋์ค๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ๊ทธ๋ผ ๊ฐ ์ ์ ์ค์ ํ๊ณ ์น์ ๋ ํ๋ฒ ๋๋ ๋ณผ๊ฒ์.
์ด๋ ๊ฒ ์๊ธด ์ฐ๋ฝ์ฒ ์ฑ๊ณผ ๋น์ทํ ๋ชจ์์ผ๋ก ๋ง๋ค์ด๋ณด๋ ค๊ณ ํ๋๋ฐ์, ์์ ํ๋กํ ๋ถ๋ถ์ ์ด๋ ค์ธ ๊ฒ ๊ฐ์ผ๋๊น ์ ์ธํ๊ณ ํ ์ด๋ธ ๋ถ๋ถ๋ง ๋ง๋ค์ด๋ด ์๋ค..! ์ผ๋จ ์น์ ์ 2๊ฐ๋ก ์ค์ ํ์ต๋๋ค. ์ฐ๋ฝ์ฒ ์ฑ์ ๊ฐ๋ฉด ๊ฐ๋๋ค ์์ผ๋ก ์ฐ๋ฝ์ฒ๊ฐ ์น์ ์ผ๋ก ๋๋์ด์ ๋ณด์ด์ฃ ? ๊ทธ๋ฆฌ๊ณ ์น์ ์ ์ด๋ฆ์ด ๋ณด์ด๋๋ฐ ์ด ์ด๋ฆ์ ์ค์ ํด์ฃผ๊ฒ ์ต๋๋ค.
์ข์ธก์์ ์น์ ์ ์ ํํ๊ณ , ์ฐ์ธก ์ธ์คํํฐ์์ ํค๋๋ฅผ ์ค์ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์คํํด๋ณด๋ฉด?
์๋ ๊ฒ ์น์ ์ด ์ฐ๋ฝ์ฒ ์ฑ์ฒ๋ผ ๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค!! ์น์ ๊ฐ ์ฌ๋ฐฑ์ด๋ ๊ธ์์ ํฌ๊ธฐ๋ ์์์ iOS๊ฐ ์์์ ์์๊ฒ ์ก์์ค์ ์ง์ง ์ข์ ๊ฒ ๊ฐ์์..
๊ทธ๋ผ ์ฐ๋ฝ์ฒ๋ฅผ ์ถ๊ฐํด๋ณผ๊ฒ์. ์ฐ๋ฝ์ฒ๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด ๊ฐ ์ ์ ๊ฑด๋๋ ค์ผ๊ฒ ์ฃ ? ์ด๋ฒ์๋ ์ผ์ชฝ ๋ด๋น๊ฒ์ดํฐ๋ก ๊ฐ์ ์ ์ ์ ํํด์ฃผ๊ฒ ์ต๋๋ค.
์ค๋ฅธ์ชฝ ์ธ์คํํฐ์์ ์ฌ๋ฌ ๊ฐ์ง ์ค์ ์ ํ ์ ์์ต๋๋ค. ์คํ์ผ ์ค์์ ์ฐ๋ฝ์ฒ ์ฑ๊ณผ ๊ฐ์ฅ ๋น์ทํ Basic์ ์ ํํ๊ณ ์ํ๋ก ์ฐ๋ฝ์ฒ ์ด๋ฆ์ ๋ช ๊ฐ ๋ฃ์ด๋ณผ๊ฒ์.
์๋์ผ๋ก ๋ ์ด๋ธ์ด ์ถ๊ฐ๋์ต๋๋ค! ์ด ๋ ์ด๋ธ๋ง ์ฑ์์ฃผ๋ฉด ๋๊ฒ ์ฃ ?
์ด๋ฐ ์์ผ๋ก ์น์ ๊ณผ ์ ์ ์ถ๊ฐํ ์ ์์ต๋๋ค..! ์ ์ ์ฌ๋ฌ ์์๋ค์ด ์๋๋ฐ ํ ๋ฒ์ฉ ์ฌ์ฉํด๋ณด๊ณ ์ถ์ด์์, ์ด๋ฒ์๋ ์ฐ๋ฝ์ฒ ์ฑ์ ์ต๊ทผ ํตํ๋ชฉ๋ก์ ๋ฐ๋ผ์ ๋ง๋ค์ด๋ณผ๊ฒ์.
์ ํ๋ฉด์ ํ ์ด๋ธ ๋ถ๋ถ์ ๋๋ค!
์ด๋ฒ์๋ ์ฝํ ์ธ ๋ถ๋ถ์ ์ฐ๋ฝ์ฒ ์ด๋ฆ, ์์น, ๋ ์ง๊ฐ ์๊ณ ์ ์ ์ ์ผ ๋์ Accessory View๋ ์์ต๋๋ค.
์ด๋ฒ์๋ ์น์ ์ ํ๋๋ก ์ค์ด๊ณ ๋ง๋ ํ ๊ธฐ๋ณธ ์คํ์ผ์ด ์์ด์ Custom์ผ๋ก ์ค์ ํ๊ณ 3๊ฐ์ ๋ ์ด๋ธ์ ์ถ๊ฐํ์ต๋๋ค. ๋ด์ฉ์ ์ฑ์์ค๊น์?
๊ทธ๋ด๋ฏํ๊ฒ ํ ์คํธ๋ ๋ง๋ค์ด์ก๋ค์! ์ด์ ์ค๋ฅธ์ชฝ์ ๋ณด์ด๋ ์ ๋ณด ์์ด์ฝ์ Accessory View๋ก ์ถ๊ฐํด๋ณผ๊ฒ์.
์ ์ ์ ํํ๊ณ ์ค๋ฅธ์ชฝ์ ๋ณด๋ฉด Accessory ์ต์ ์ด ์์ต๋๋ค! ์ฌ๊ธฐ์ Detail์ ์ ํํ๊ณ ์คํํด์ฃผ์ธ์~!
์ค ์ด์ ์ง์ง ์ฐ๋ฝ์ฒ ์ฑ ๊ฐ์์ก๋ค์!! ๊ทผ๋ฐ ์ ์ ํ๋ํ๋ ๋ค ๋ง๋ค์ด์ฃผ๊ณ ์์ผ๋ ๋๋ฌด ๋ฒ๊ฑฐ๋กญ๋ค์..
๊ฐ๋ฐ์๋ผ๋ฉด ์์์ ๋ณด๋ค๋ ์๋ํ๋ฅผ ํด์ผ๊ฒ ์ฃ ..! ๊ทธ๋์ ๋ค์ ํฌ์คํธ๋ถํฐ๋ UITableViewController๋ฅผ ์์๋ฐ๋ ์ปจํธ๋กค๋ฌ ํด๋์ค๋ฅผ ํ๋ ๋ง๋ค์ด์ ๋ด์ฉ์ ์๋์ผ๋ก ์ฑ์์ฃผ๋๋ก ํด๋ณด๊ฒ ์ต๋๋ค!!