[Rx] Reusable Cell์˜ ํ”์ ์ด ๋‚จ๋Š”๋‹ค

Tistory์—๋Š” ์š”์•ฝ๋ณธ์ด ์˜ฌ๋ผ ์™€ ์žˆ์Šต๋‹ˆ๋‹ค. Syntax Highlighting์œผ๋กœ ํŽธํ•˜๊ฒŒ ์ฝ๊ณ  ์‹ถ์œผ์‹  ๋ถ„๋“ค์€ ์—ฌ๊ธฐ์„œ ์ฝ์œผ์‹œ๋ฉด ๋˜์–ด์œ ~ [๋…ธ์…˜ ๋ฐ”๋กœ๊ฐ€๊ธฐ] ๋ฌธ์ œ ์ƒํ™ฉ ๊ฐ cell๋งˆ๋‹ค Image์™€ Like Button์ด ์กด์žฌํ•œ๋‹ค. ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ์ƒํƒœ ๋ณ€ํ™”๋ฅผ ํ•˜๋ฉฐ ๋ชจ๋ธ์„ ๋ณ€๊ฒฝ์‹œํ‚ค๊ณ  ๊ทธ์— ๋งž๊ฒŒ ๋ทฐ์—์„œ๋„ Background Color, Text๋ฅผ ๋ณ€๊ฒฝํ•ด์ค€๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ƒํƒœ ๋ณ€๊ฒฝ ์ดํ›„ ์Šคํฌ๋กค์„ ํ•˜๋ฉด cell์ด ์žฌ์‚ฌ์šฉ๋˜๋ฉด์„œ ๋‹ค๋ฅธ ์‚ฌ์ง„์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋ฒ„ํŠผ์€ ์—ฌ์ „ํžˆ ๋นจ๊ฐ„์ƒ‰์ธ ๊ฒƒ์ด ๋ฌธ์ œ๋‹ค. ์›๋ž˜๋Š” ์ด๋ ‡๊ฒŒ ํ•˜์ง€ ์•Š์•˜๋˜๊ฐ€? func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { if let cell = tabl..

iOS 2021. 5. 17. 11:58
[Rx] UITableViewCell ๋ฐ€์–ด์„œ ์‚ญ์ œ

Rx ver. ์ด๋ผ๊ณ  ์ œ๋ชฉ์— ์จ ๋†“์œผ๋‹ˆ ๋ˆ„๊ฐ€ ๋ณด๋ฉด ๋‹ค๋ฅธ ๋ฒ„์ „๋„ ์žˆ๋Š” ์ค„ ์•Œ๊ฒ ๋„ค ํ‚คํ‚ค ์ด๋ฒˆ ๊ธ€์€ ์‚ฌ์‹ค ๋ณ„ ๊ฑด ์•„๋‹ˆ๊ณ , RxSwift๋กœ reactive ํ•˜๊ฒŒ ์งœ๋Š” ์—ฐ์Šต ์ค‘์— ๋„ˆ๋ฌด ๋‹น์—ฐํ•˜๊ฒŒ ์“ฐ๋˜ ์ฝ”๋“œ๊ฐ€ ์•ˆ ๋จน์–ด์„œ ๋‹นํ™ฉํ–ˆ์ง€๋งŒ ๋ถ„๋ช… ๋‚˜ ๊ฐ™์€ ๋ชฝ์ธ™์ด๊ฐ€ ํ˜ผ์ž๋Š” ์•„๋‹ ๊ฒƒ ๊ฐ™์•„์„œ ์“ด๋‹ค. ์ „์ฒด ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ์ผ๋ฃจ์™€์œ . ๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด, ์ฝ”๋“œ๋ฅผ Reactiveํ•˜๊ฒŒ ์ž˜ ์งœ ๋†“์•˜๋‹ค๋ฉด ์•Œ.์•„.์„œ ์ž˜ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•ด์ฃผ๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ. (ํžŒํŠธ๋ฅผ ์–ป์—ˆ๋‹ค๋ฉด ๊ฐ€์„œ ๊ณ ์น˜์‹œ๊ณ , ์•„๋‹ˆ๋ผ๋ฉด ์ญ‰ ๊ฐ™์ด ๋ณด์‹œ์ฃฑ!) non-RX Way ๊ธฐ์กด์— tableview swipe to delete cell ์„ ํ•˜๋Š” ๋ฐฉ์‹์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. (์ฐธ๊ณ ) override func tableView(_ tableView: UITableView, commit editin..

iOS 2021. 5. 13. 15:04
[Rx] PHPhotoLibrary ์ฒซ ์Šน์ธ ์ดํ›„ ๋ฐ”๋กœ ์•จ๋ฒ” ์•ˆ๋œจ๋Š” ๋ฌธ์ œ

ํ˜ผ์ž ๋งŒ์ง€์ž‘ ๊ฑฐ๋ฆฌ๊ณ  ์žˆ๋Š” ํ† ์ด ํ”„๋กœ์ ํŠธ์—์„œ ํ•ด๊ฒฐ ๋ชปํ•˜๊ณ  ์žˆ๋˜ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ์ ๊ทน์ ์œผ๋กœ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์ง€๋Š” ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์˜ค๋Š˜ Rx ๊ณต๋ถ€ํ•˜๋‹ค๊ฐ€ ๊ทธ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์•„์„œ ๊ณต์œ ํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋‹จ ๋ฌธ์ œ ์ƒํ™ฉ๋ถ€ํ„ฐ ๋ณด๊ณ  ๊ฐ€์‹ค๊นŒ์—ฌ. ์•„๋‹ˆ์ง€, ์ผ๋‹จ ์ปคํ”ผ ๋ถ€ํ„ฐ. ๋ฌธ์ œ์ƒํ™ฉ ์‚ฌ์šฉ์ž์˜ ์‚ฌ์ง„์ฒฉ์— ์ ‘๊ทผํ•˜๋ ค๋ฉด ์ตœ์ดˆ ์ ‘๊ทผ ์‹œ๋„์—์„œ ์ €๋ ‡๊ฒŒ ์Šน์ธ์„ ๋ฐ›์•„์•ผ ํ•˜์ฃ . ๊ทธ๋Ÿฐ๋ฐ ์™ผ์ชฝ์—์„œ ์Šน์ธ์„ ํ•ด์ค˜๋„ ์˜ค๋ฅธ์ชฝ ํ™”๋ฉด ์ฒ˜๋Ÿผ ๋ฐ”๋กœ ์‚ฌ์ง„๋“ค์ด ๋œจ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ์‚ฌ์ง„์ฒฉ์„ ๋ˆŒ๋Ÿฌ์•ผ ๋œจ๋”๋ผ๊ตฌ์š”. ์ด ๋ฌธ์ œ๋ฅผ (ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ฐพ์œผ๋‹ˆ๊นŒ ๋‚˜์˜ค๊ธด ํ•˜๋˜๋ฐ ์™œ ์•ˆ์ฐพ์•„๋ดค์—ˆ์ง€ ํ‚คํ‚ค) Rx๋กœ ํ•ด๊ฒฐํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์›์ธ ํ˜„์žฌ๋Š” photos ๋ณ€์ˆ˜์— ์‚ฌ์ง„๋“ค์„ load ํ•˜์ง€๋งŒ '์Šน์ธ' ๊ณผ์ •์„ ๊ฑฐ์น˜๊ณ  reload ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด reload๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋ฉด ๋˜๊ฒ ๋„ค์š”..

iOS 2021. 4. 22. 12:25