๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป/YouTube ๊ฐ•์˜ ๊ณต๋ถ€

ํ…Œ์ด๋ธ” ๋ทฐ(UITableView)_[iOS/Swift]_(1)

yeggrrr๐Ÿผ 2024. 3. 2. 17:21
728x90

 


 

 

TableView



ํ…Œ์ด๋ธ” ๋ทฐ๋ฅผ ์™œ ์‚ฌ์šฉํ• ๊นŒ? ์ •๊ฐˆํ•˜๊ฒŒ ๋ณด์—ฌ์ง€๊ธฐ ์œ„ํ•ด์„œ?
์ „ํ™”๋ฒˆํ˜ธ๋ถ€๋งŒ ์ƒ๊ฐํ•ด๋ด๋„ ์—ฌ๋Ÿฌ ์ •๋ณด๋“ค์„ ๋‹ด๋Š” ํ™”๋ฉด์˜ ๊ฒฝ์šฐ์—๋Š” TableView๊ฐ€ ์œ ์šฉํ•  ๊ฒƒ์ด๋‹ค.
์ด๋ ‡๊ฒŒ ์œ ์‚ฌํ•œ UI๊ฐ€ ๋ฐ˜๋ณต์ ์œผ๋กœ ๊ฐ€๋ณ€ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ผ ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹๋‹ค.

TableView๋Š” ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ• ๊นŒ?๐Ÿค”

1. ํ…Œ์ด๋ธ”์— ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€.
(ex) ์ „ํ™”๋ฒˆํ˜ธ๋ถ€, ์•„์ดํฐ Setting ์•ฑ , โˆ™โˆ™โˆ™

2. ๋ฐ์ดํ„ฐ๊ฐ€ ๋ช‡ ๊ฐœ์ธ๊ฐ€?
(ex) 100๊ฐœ, 1000๊ฐœ, 10000๊ฐœ, โˆ™โˆ™โˆ™

3. ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ํ–‰์„ ํด๋ฆญํ•˜๋ฉด? - (ํ•„์ˆ˜ X)

 

 


< Table View๋กœ list ๋งŒ๋“ค๊ธฐ>

 

โ‘  XCode - ์•ฑ ์ƒ์„ฑ
→ (์ด๋ฆ„: MyTableView)์œผ๋กœ ํ•˜๊ฒ ์Œ.  <์ž์œ ๋กญ๊ฒŒ>



โ‘ก ์Šคํ† ๋ฆฌ๋ณด๋“œ์—์„œ Show Library - Table View ์ถ”๊ฐ€ - ํ•˜๋‹จ์— Add New Constraints์—์„œ ์ƒํ•˜์ขŒ์šฐ 0์œผ๋กœ ์…‹ํŒ…



โ‘ข ViewController ์ฝ”๋“œ์™€ ์—ฐ๊ฒฐ (control - drag & drop)
→ (์ด๋ฆ„: TableViewMain)์œผ๋กœ ํ•˜๊ฒ ์Œ. <์ž์œ ๋กญ๊ฒŒ>



โ‘ฃ class์— UITableViewDelegate,UITableViewDataSource ์ถ”๊ฐ€
class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {



โ‘ค 4๋ฒˆ์ฒ˜๋Ÿผ ์ถ”๊ฐ€ํ•˜๋ฉด, ๋นจ๊ฐ„์ƒ‰ ์•Œ๋ฆผ์ด ๋œธ(Do you want to add protocol stubs?)
- Fix ํด๋ฆญ.

(
↓) ์•„๋ž˜์ฒ˜๋Ÿผ ์ž๋™์œผ๋กœ ์ฝ”๋“œ๊ฐ€ ์…‹ํŒ…๋จ. (↓)

 



โ‘ฅ ์œ„์— code ์ฑ„์šฐ๊ธฐ!

1> ์ฒซ ๋ฒˆ์งธ code → 'numberOfRowInSection ์–ด์ฉŒ๊ณ ์ €์ฉŒ๊ณ .. ์Œ. ์„น์…˜ ์•ˆ์— ํ–‰์˜ ์ˆ˜..?'

- ๋ฐ์ดํ„ฐ๋Š” ๋ช‡ ๊ฐœ์ธ๊ฐ€.

โ–ท return ํ–‰ ๊ฐœ์ˆ˜
→ return 20์œผ๋กœ ํ•˜๊ฒ ์Œ. <์ž์œ ๋กญ๊ฒŒ>


2> ๋‘ ๋ฒˆ์งธ code๋ฐ์ดํ„ฐ๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€.
๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”๋ฐ, ์ผ๋‹จ 1๋ฒˆ์งธ ๋ฐฉ๋ฒ• Go!์ž„์˜์˜ ์…€ ๋งŒ๋“ค๊ธฐ


โ–ท let cell = UITableViewCell.init( ) ํ•ด์„œ ์•„๋ž˜ ํ™”๋ฉด์ฒ˜๋Ÿผ ์„ ํƒ!

 



โ‘ฆ UITableViewCell.CellStyle.default
String?"Identifier์ด๋ฆ„"
("TableViewFirstType" ์œผ๋กœ ํ•˜๊ฒ ์Œ. <์ž์œ ๋กญ๊ฒŒ>)


reuseIdentifier์—์„œ reuse๊ฐ€ ๋ญ๊ธธ๋ž˜ " "์„ ๋„ฃ์ง€?๐Ÿค”
→ 'ํŠน์ • ์…€์„ ๊ณ„์† ๋ฐ˜๋ณตํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค.'

์ฆ‰, ์œ„์—์„œ return 20์„ ํ–ˆ์ง€๋งŒ, ๋งŒ์•ฝ์— 10000, 100000...์ ์  ์ปค์ง„๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค๋ฉด..?
์ฝ”๋“œ๊ฐ€ ๊ทธ๋งŒํผ ๋ˆ๋‹ค(cell์„ ์žฌํ™œ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค)๋Š” ๋œป์ด๊ณ ,
๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด, ๊ฒฐ๊ตญ ์•ฑ์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•  ๊ฒƒ์ด๋‹ค.

๊ทธ๋ž˜์„œ ์ด๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ํŠน์ •ํ•œ ์…€์„ ๊ณ„์† ๋ฐ˜๋ณตํ•ด์„œ
๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ๋กœ "__" ์ด๋ฆ„์„ ์ •ํ•ด์ค€ ๊ฒƒ์ด๋‹ค. 



โ‘ง ์œ„ ์ฝ”๋“œ ์ด์–ด์„œ ์ž‘์„ฑ
cell.textLabel.text = "\(indexPath.row)"
→ ํ–‰์˜ ์…€์ธ๋ฐ ์ˆœ๋ฒˆ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” 'indexPath' ๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐ ์…€๋งˆ๋‹ค ์ˆซ์ž๋ฅผ ๋„ฃ๊ฒ ๋‹ค.



โ‘จ return cell



โ‘ฉ viewDidLoad ์—์„œ ์ž‘์„ฑ
TableViewMain.dataSource = self
TableViewMain.delegate = self

์—ฌ๊ธฐ์„œ self๊ฐ€ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์€
self = ๋‚˜ ์ž์‹  = class → class ์•ˆ์— ์žˆ๋Š” ํ•ด๋‹นํ•˜๋Š” ํ•จ์ˆ˜๋กœ ์ฐพ์•„๊ฐ€๋Š” ๋œป.
(ํด๋ž˜์Šค์—์„œ UITableViewDelegate,UITableViewDataSource๋ฅผ ๊ตฌํ˜„ํ•ด๋†จ๊ธฐ ๋•Œ๋ฌธ์— ์—ฐ๊ฒฐ์ด ๋œ ๊ฒƒ.)



๋! ๐Ÿฅน
์‹คํ–‰ GoGo!!


ViewController
๊ฒฐ๊ณผ๋ฌผ

 




๋ฐ”๋กœ ์ด์–ด์„œ ๋‹ค์Œ ๊ฒŒ์‹œ๋ฌผ์—
์œ„์—์„œ โ‘ฅ์—์„œ ์–ธ๊ธ‰ํ–ˆ๋˜ 2๋ฒˆ์งธ ๋ฐฉ๋ฒ• Go!

2024.03.02 - [Study/YouTube ๊ฐ•์˜ ๊ณต๋ถ€] - ํ…Œ์ด๋ธ” ๋ทฐ(UITableView)_[iOS/Swift]_(2)




 

728x90