delegate 3

[ iOS ] scrolling ์‹œ ํ‚ค๋ณด๋“œ ๋‚ด๋ฆฌ๊ธฐ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉฐ Delegate ํŒจํ„ด ์ดํ•ด

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

iOS 2025.01.23

[ iOS ] ๋ฐ์ดํ„ฐ ์ „๋‹ฌ : (2/5) DelegatePattern์œผ๋กœ ์ „๋‹ฌํ•˜๊ธฐ

๋ฌธ์ œ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐ์ดํ„ฐ ์ „๋‹ฌํ•˜๊ธฐ 1. Property๋กœ ์ „๋‹ฌํ•˜๊ธฐ 2. DelegatePattern์œผ๋กœ ์ „๋‹ฌํ•˜๊ธฐ 3. NotificationCenter๋กœ ์ „๋‹ฌํ•˜๊ธฐ 4. Closure๋กœ ์ „๋‹ฌํ•˜๊ธฐ 5. ์žฅ๋‹จ์  ์ •๋ฆฌ DelegatePattern์œผ๋กœ ์ „๋‹ฌํ•˜๊ธฐ 2 - 1 ํ™”๋ฉด ์ „ํ™˜ ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐ์— ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”๋ฐ, ๊ทธ ์ค‘ Delegate Pattern์„ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž. 2์˜ ViewController์—์„œ Delegate ํ”„๋กœํ† ์ฝœ์„ ์„ ์–ธํ•ด ํ™”๋ฉด ์ „ํ™˜ ๋ฒ„ํŠผ์˜ ์•ก์…˜ํ•จ์ˆ˜์—์„œ ๋ฐฉ๊ธˆ ์„ ์–ธํ•ด์ค€ Delegate์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. ์ด ๋ฉ”์„œ๋“œ์˜ ๊ตฌํ˜„์€ 1์˜ ViewController์—์„œ ์ด๋ฃจ์–ด์ง„๋‹ค. ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ์ธ์ˆ˜๋กœ ๋„˜๊ฒจ์ฃผ๊ณ , ๊ตฌํ˜„ ๋ถ€๋ถ„์—์„œ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์›ํ•˜๋Š” ๊ณณ์—..

iOS 2022.06.20

[ iOS ] cell ๋‚ด ๋ฒ„ํŠผ ์„ ํƒ ์ด๋ฒคํŠธ ๊ตฌํ˜„ (+ Delegate ํŒจํ„ด)

๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ ์‚ฌ์ง„ ๋‚ด ๋ฒ„ํŠผ ์„ ํƒํ•˜๊ธฐ 1. cell ๋‚ด ๋ฒ„ํŠผ ์ด๋ฒคํŠธ ๋ฐœ์ƒ์‹œํ‚ค๊ธฐ UICollectionViewControllerDelegate์˜ collectionView(_:didSelectItemAt:) ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด collectionView Cell์˜ ์„ ํƒ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ์ด๋ฒคํŠธ๋Š” cell์˜ ์ด๋ฒคํŠธ๋ฅผ ์˜๋ฏธํ•˜์ง€ cell ๋‚ด ๋ฒ„ํŠผ์˜ ์ด๋ฒคํŠธ๋ฅผ ์˜๋ฏธํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ฒ„ํŠผ์ด cell ๋‚ด์— ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค. collectionView(_:didSelectItemAt:) ๋ธ๋ฆฌ๊ฒŒ์ดํŠธ์— ํŠน์ •ํ•œ ์ธ๋ฑ์Šค์˜ ์•„์ดํ…œ์ด ์„ ํƒ๋˜์—ˆ์Œ์„ ์•Œ๋ฆฐ๋‹ค. ๋ฒ„ํŠผ์— ์„ ํƒ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํ•ด๋‹นํ•˜๋Š” ์•ก์…˜ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋ฏ€๋กœ, ์•ก์…˜ํ•จ์ˆ˜ ๋‚ด์— ์‚ฌ์ง„์„ ์„ ํƒํ•˜๋Š” ์ž‘์—…์„ ๊ตฌํ˜„ํ•˜๋ฉด ๋œ๋‹ค. ํ•˜..

iOS 2022.06.14
728x90