[Toy] ๋ฆฌ์ , ์•ฑ ์ถœ์‹œ ๊ทธ๋ฆฌ๊ณ  ์†Œ์†Œํ•œ ํ”ผ๋“œ๋ฐฑ

๋“œ๋””์–ด ์ œ ์•ฑ์ด ์„ธ์ƒ ๋ฐ–์œผ๋กœ ๊ณต๊ฐœ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์™€์•„~~ ํ•œ ๋ฒˆ ๋ฆฌ์  ๋‹นํ•˜๊ณ  ์ถœ์‹œ๋ฅผ ํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ์š”, ๋ญ”๊ฐ€ ๊ธฐ๋ถ„์ด ์ƒˆ๋กญ๊ณ  ์™œ ์‚ฌ๋žŒ๋“ค์ด ํ† ์ดํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋Š”์ง€ ์•Œ๊ฒ ๊ณ  ์—…๋ฐ์ดํŠธ ํ•  ๊ฒƒ๋“ค์ด ๋ˆˆ์— ๋ณด์ด๊ณ , ์ƒˆ๋กœ์šด ๊ฒƒ๋„ ๋˜ ๋งŒ๋“ค์–ด๋ณด๊ณ  ์‹ถ๊ณ  ๊ทธ๋Ÿฌ๋„ค์š”! ๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€ ๋ฆฌ์  ๊ฒฝํ—˜, ์ถœ์‹œ ๋œ ์•ฑ ๊ทธ๋ฆฌ๊ณ  ์†Œ์†Œํ•˜๊ฒŒ ๋ฐ›์•„ ๋ณธ ํ”ผ๋“œ๋ฐฑ์— ๋Œ€ํ•ด ์ ์–ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ## ํ•œ ๋ฒˆ์˜ ๋ฆฌ์  ๋ฆฌ์ ์„ ๋‹นํ•˜๋Š”๊ฒŒ ์–ด์ฉŒ๋ฉด ๋‹น์—ฐํ•œ ๊ฒƒ์ด์—ˆ์–ด์š”. ์‚ฌ์šฉ์ž์˜ ์นด๋ฉ”๋ผ๋‚˜ ์‚ฌ์ง„์ฒฉ์— ์ ‘๊ทผํ•˜๋ ค๋ฉด ๊ถŒํ•œ ์š”์ฒญ์„ ํ•ด์•ผํ•˜๋Š” ๊ฒƒ์€ ์—ฌ๋Ÿฌ๋ถ„๋“ค์ด ๋ชจ๋‘ ์•„์‹ค ๊ฒƒ ๊ฐ™์•„์š”. ๋Œ€๋ถ€๋ถ„ plist์—์„œ key๋ฅผ ์„ค์ •ํ•˜์‹คํ…๋ฐ, ์ด ๋•Œ ์š”์ฒญ ๋ฉ”์„ธ์ง€๋ฅผ value ๊ฐ’์— ์จ ๋†“์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ ๋ฉ”์„ธ์ง€์—๋Š” ์–ด๋–ค ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ์ž์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ์ง€๋ฅผ ๋ถ„๋ช…ํ•˜๊ฒŒ ๋ช…์‹œํ•ด ๋‘์–ด์•ผ ํ•œ๋‹ค๊ณ  HIG ๋ฌธ์„œ์—๋„ ๋‚˜..

[Toy] ๊ธฐํš๋ถ€ํ„ฐ ์‹ฌ์‚ฌ๊นŒ์ง€... ์ œ๋ฐœ ํ†ต๊ณผ ์‹œ์ผœ์ฃผ์„ธ์šฉ

์˜ค๋Š˜์€ ์ œ ํ† ์ด ํ”„๋กœ์ ํŠธ ๊ฒฝํ—˜์„ ๊ณต์œ ํ•ด๋ณด๊ณ ์ž ๊ธ€์„ ์“ฐ๋ ค๊ณ  ์•‰์•˜๋‹ต๋‹ˆ๋‹ค~ ์ฒ˜์Œ ๊ธฐํšํ–ˆ๋˜ ๋ถ€๋ถ„๊นŒ์ง€๋Š” ๋‹ค ๊ฐœ๋ฐœ์„ ํ•œ ๊ฒƒ ๊ฐ™๊ณ , ๊ฐœ๋ฐœ์ž ๊ณ„์ •๋„ ๋งŒ๋“ค์—ˆ๊ณ (12๋งŒ์›์ด๋ผ๋‹ˆ!), ๋ฆฌ์ ๋„ ๋ฐ›์•„๋ณด๊ณ  ๋‹ค์‹œ ์ œ์ถœ๋„ ์™„๋ฃŒํ•œ ์ƒํƒœ์—์„œ ์ด ๊ธ€์„ ์“ฐ๊ณ  ์žˆ๋Š”๋ฐ์š”, ์š” ๋ช‡ ์ผ (์†๋˜๊ฒŒ ํ‘œํ˜„ํ•ด์„œ) ๋นก.์„ธ.๊ฒŒ ๊ฐœ๋ฐœํ•œ ๊ฒƒ ๊ฐ™๋„ค์š”. ์ด ๊ฐ•๋„๋กœ ์ญ‰ ํ–ˆ์œผ๋ฉด 2~3์ฃผ๋ฉด ์ถฉ๋ถ„ํ–ˆ์„ ๊ฒƒ ๊ฐ™์€๋ฐ ์ด๋Ÿฐ ์ €๋Ÿฌ ํ•‘๊ณ„๋กœ ์กฐ๊ธˆ์”ฉ ๋ฏธ๋ค˜๋˜๊ฒŒ ํ›„ํšŒ๋˜๋„ค์š”. ๊ฐ„๋žตํ•˜์ง€๋งŒ ์ฐจ๋ก€๋กœ ์‚ดํŽด๋ณผ๊ฒŒ์š”! ๊ธฐํš : ์–ด์ฉŒ๋‹ค Pixel Palette๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋˜์—ˆ๋‚˜ ์นœ๊ตฌ์™€ ํ™๋Œ€์—์„œ ์‹ ๋‚˜๊ฒŒ ๋†€๊ณ  ํ‡ด๊ทผ ์‹œ๊ฐ„ ์ฆˆ์Œ์— 2ํ˜ธ์„ ์„ ํƒ€๊ณ  ์ง‘์œผ๋กœ ๋Œ์•„๊ฐ€๋˜ ๊ธธ์ด์—ˆ์–ด์š”. ํ‡ด๊ทผ ์‹œ๊ฐ„์ด๋ผ ์‚ฌ๋žŒ๋„ ๋งŽ๊ณ , ๋’ค์— ์•„์ €์”จ๊ฐ€ ๋ฐ€์–ด์„œ ์งœ์ฆ๋„ ๋‚˜๋Š” ์ƒํƒœ์˜€๋Š”๋ฐ ์ˆœ๊ฐ„ ํ™˜ํ•ด์ง„ ์ฐฝ ๋ฐ–์„ ๋ฐ”๋ผ๋ณด๋Š”๋ฐ ํ•ด๊ฐ€ ์ง€๊ณ  ์žˆ๋Š” ํ•œ๊ฐ•์ด ๋ณด๊ณ  ์žˆ๋”๋ผ๊ตฌ์š”..

[Toy] collectionview์˜ cell์ด ์—…๋ฐ์ดํŠธ๊ฐ€ ์ž˜ ์•ˆ๋œ๋‹ค

๋ฒ„๊ทธ ๋ฆฌํฌํŠธ #11 ์— ์˜ฌ๋ ธ๋˜ ๋‚ด์šฉ์œผ๋กœ, NSAttributedString์ด ๋ฌธ์ œ์ธ ์ค„ ์•Œ์•˜์œผ๋‚˜ ๊ฒฐ๊ตญ์€ (์•„๋‹ˆ๋‚˜ ๋‹ค๋ฅผ๊นŒ) collection view์˜ ์ž˜๋ชป์ด์—ˆ๋˜ ๋ฌธ์ œ์—์š”. ๊ฐ„๋‹จํžˆ ์‚ดํŽด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. (Bug Report Issue #11 https://github.com/Sueaty/PixelPalette/issues/11 ) ## ๋ฌธ์ œ์ƒํ™ฉ ์˜ค๋ฅธ์ชฝ๊ณผ ์™ผ์ชฝ์ด ๋‹ค๋ฅธ ๊ฒƒ ๋ณด์ด์‹œ๋‚˜์š”? ์ฒซ๋ฒˆ์งธ, ๋‘๋ฒˆ์งธ cell์„ ์ž์„ธํžˆ ๋ณด๋ฉด ๋ณด์ด์‹ค ๊ฒƒ ๊ฐ™์•„์š”~! ๋‘ ์ƒํ™ฉ ๋ชจ๋‘ ๋น„์ •์ƒ์ด์—์š”. ์–ธ์ œ๋‚˜ ํ•˜๋‚˜์˜ ๋ ˆ์ด๋ธ”๋งŒ highlight ๋˜์–ด์•ผ ํ•˜๊ฑฐ๋“ ์š”. cell์˜ ๋ฐฐ๊ฒฝ์ƒ‰์— ๋”ฐ๋ผ, ๋ฐ์œผ๋ฉด ์•„๋ž˜ label์— ์–ด๋‘์šฐ๋ฉด ์œ„ label์— highlight๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ „ highlight๋ฅผ ์œ„ํ•ด NSAttributedString์„ ์‚ฌ์šฉ..

[Toy] ์Šค์Šค๋กœ ๋ฒ„๊ทธ ๋ฆฌํฌํŒ…์„ ํ•˜๋ฉด ํ•  ์ˆ˜๋ก ๋ถ€์กฑํ•œ๊ฒŒ ๋ณด์ธ๋‹ค

ํ˜„์žฌ ์ฃผ์š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๊ฐœ๋ฐœ์€ ๋ ๋งˆ์นœ ์ƒํƒœ์ง€๋งŒ ๋‹ค์–‘ํ•œ use case๋ฅผ ํ† ๋Œ€๋กœ ์‹คํ—˜์„ ํ•ด๋ณด๋‹ˆ ๊ณ ๋ คํ•˜์ง€ ๋ชปํ•œ ๋ถ€๋ถ„๋“ค์—์„œ ๋ฒ„๊ทธ๋“ค์ด ์†์ถœํ•˜๋„ค์š”. ์•„์ฐจ์ฐจ ์•„์ฐจ์ฐจ! ์†.์ถœ. ๊นŒ์ง€๋Š” ์•„๋‹ˆ๊ณ , ์ข€ ๊ฑฐ์Šฌ๋ฆฌ๊ฒŒ ๋ˆˆ์— ๋ณด์ด๋„ค์š”ใ…Žใ…Ž ๋ฒ„๊ทธ๊ฐ€ ์•„๋‹ˆ๋”๋ผ๋„ ์‚ฌ์šฉ์„ฑ์„ ์กฐ๊ธˆ ํ—ค์น˜๋Š” ๊ฒƒ ๊ฐ™์€ ๊ฒƒ๋“ค๋„ ์žˆ๊ณ  ํ•ด์„œ ๊ณ ์น˜๊ณ  ์žˆ์–ด์š”. ๊นƒํ—™์—์„œ ์ด์Šˆ ๋ฆฌํฌํŠธ ํ…œํ”Œ๋ฆฟ์„ ๋งŒ๋“ค์–ด์„œ ์ง€๊ธˆ ๊ณ„์† ํ™œ์šฉํ•˜๊ณ  ์žˆ์–ด์š”. ํšจ๊ณผ์ ์œผ๋กœ ๋ฒ„๊ทธ ๋ฆฌํฌํŒ…์„ ํ•  ์ˆ˜ ์žˆ๋Š” ์–‘์‹๋“ค์ด ๋‹ค์–‘ํ•˜์ง€๋งŒ ์ €๋Š” ๊นƒํ—™ ์–‘์‹์„ ์กฐ๊ธˆ ์ˆ˜์ •ํ•ด์„œ ๋”ฐ๋ฅด๊ณ  ์žˆ๋„ค์šฉ! ์ง์ ‘ ์‚ฌ์šฉํ•ด๋ณด๋‹ˆ Description, How to Reproduce, Expected Behavior ๋Š” ํ•„์ˆ˜๋กœ ์ž‘์„ฑ์„ ํ•˜๊ฒŒ ๋˜๊ณ  Screenshot์ด๋‚˜ Additional Context๋Š” ํ•„์š”์— ๋”ฐ๋ผ ์“ฐ๊ณ  ์žˆ์–ด์š”! ์œ„์˜ ์˜ˆ์‹œ์—๋Š” Screen..

[Toy] ์•„๋‹ ใ…‹ใ…‹ ์ด๊ฒŒ ๋ญ”๋ฐ!

๊ฐ€๋” ์˜๋„ํ•˜์ง€ ์•Š์€ ๊ฒฐ๊ณผ๋ฌผ์ด ์›ƒ์Œ์„ ์ฃผ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹คใ…‹ใ…‹ ์ž‘์—…ํ•˜๋˜ ํ”„๋กœ์ ํŠธ์˜ ๋””์ž์ธ(?)์„ ๋ฐ”๊พธ๊ธฐ๋กœ ๊ฒฐ์‹ฌํ–ˆ๋‹ค. ๋ญ”๊ฐ€ ํ‚ค๋…ธํŠธ๋กœ ์ง์ ‘ ๊ทธ๋ ค๋ณด๋‹ˆ๊นŒ ๋ฐ”๊พธ๋Š”๊ฒŒ ๋” ์ด๋ป ๋ณด์ผ ๊ฒƒ ๊ฐ™์•„์„œ. ๋ฐ”๋ณด๊ฐ™์€ ์˜ค๋ฑ…๋ฏธ๋‹ˆ๋ฅผ ์ด๋ ‡๊ฒŒ ํ™•๋Œ€ํ•ด์„œ ๋ณด๋Š”๊ฒŒ ๋” ์ข‹์„ ๋“ฏ ํ•˜์—ฌ ๊ธฐ์กด์—๋Š” aspect fit ์œผ๋กœ ์ž‘์—…ํ•˜๋ฉฐ ์‚ฌ์ง„ ํฌ๊ธฐ๋งŒํผ๋งŒ ๋ฐ›๊ฒŒ ํ•˜์˜€์œผ๋‚˜ ๊ฝ‰ ์ฑ„์šด ๋‹ค์Œ pan gesture์™€ pinch gesture๋กœ ํ™•๋Œ€์™€ ์ด๋™์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š”๊ฒŒ ๋” ์ข‹์„ ๊ฒƒ ๊ฐ™์•˜๋‹ค. ๊ทธ๋ž˜์„œ image view์— gesture recognizer ๊ฑธ๊ณ  ํ–ˆ๋Š”๋Žˆใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ ์ด๋ฏธ์ง€ ๋ทฐ ์ „์ฒด๊ฐ€ ์›€์ง์—ฌ๋ฒ„๋ฆฌ๋„คใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ ์•„ ์ง„์งดใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ ์Šคํฌ๋กค ๋ทฐ์— ๋„ฃ์–ด๋ณด๋ฉด ๋˜๋ ค๋‚˜? ๋‹ค์‹œ ์ž‘์—…ํ•˜๋Ÿฌ ์ด์ดใ…‹ใ…‹

[๊ทธ๋ž˜ํ”ฝ์Šค๋žฉ] ๋งฅ๋ถ์— ์ปคํ”ผ๋ฅผ ์Ÿ์•˜๋‹ค. ๋‚ด๊ฐ€ ์ฐฉํ•˜๊ฒŒ ์‚ด์•˜๋‚˜ ๊ณฑ์”น์–ด๋ดค๋‹ค.

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

SUEATY/๊ธฐ๋ก 2021. 7. 30. 19:25
[iOS] lazy var : ๋ฉ”๋ชจ๋ฆฌ ์„ธ์ด๋ฒ„ ๐Ÿฆธ‍โ™€๏ธ

์—ฌ๋Ÿฌ๋ถ„ ํ˜น์‹œ ์Šคํ† ๋ฆฌ๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ๋ทฐ๋ฅผ ์ž‘์„ฑ ํ•ด๋ณด์‹  ์  ์žˆ์œผ์„ธ์š”? private lazy var titleLabel: UILabel = { let label = UILabel() return label }() UI Component๋ฅผ ๋งŒ๋“ค ๋•Œ ์ฃผ๋กœ lazy ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š”๋ฐ์š”, ์–ด๋–ค ์ด์œ ๋กœ ์‚ฌ์šฉํ•˜๋Š”๊ฑธ๊นŒ์š”? Lazy Stored Property Lazy ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ฉด ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „๊นŒ์ง€ ๊ฐ’์„ ํ• ๋‹นํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— lazy property๋ฅผ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 1. Property์˜ ์ดˆ๊ธฐ๊ฐ’์ด ์™ธ๋ถ€์— ์˜์กด ๋˜์–ด ์žˆ์–ด์„œ ๊ฐ์ฒด์˜ ์ดˆ๊ธฐํ™”๊ฐ€ ๋๋‚˜๊ธฐ ์ „๊นŒ์ง€ ํ™•์‹ค์น˜ ์•Š์„ ๋•Œ 2. Property์˜ ์ดˆ๊ธฐ๊ฐ’์ด ๋ณต์žกํ•œ ๊ณ„์‚ฐ์„ ์š”ํ•ด์„œ ์‚ฌ์šฉ ์ „๊นŒ์ง€๋Š” ๊ณ„์‚ฐํ•˜..

iOS 2021. 7. 28. 20:15
[iOS] NotificationCenter๋Š” ์ค‘์•™์šฐ์ฒด๊ตญ

์ €๋Š” ์–ธ์ œ๋‚˜ ๋น„๋™๊ธฐ ์ž‘์—…๋“ค์ด ๊ณจ์น˜ ์•„ํ”ˆ๋ฐ hoxy... ์—ฌ๋Ÿฌ๋ถ„๋„ ๊ทธ๋Ÿฌ์‹ ๊ฐ€์š”? ๋น„๋‹จ ํ†ต์‹ ๋‹จ์—์„œ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์•ฑ ๊ณณ๊ณณ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ๋“ค๋„ ๋ชจ๋‘ ๋น„๋™๊ธฐ์ ์œผ๋กœ ๋ฐœ์ƒˆํ•ฉ๋‹ˆ๋‹ค. RxSwift์™€ Combine์„ ํ†ตํ•ด ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•œ๋‹ค๋ฉด ์ˆ˜์›”ํ•˜๊ฒŒ ํ•ด๊ฒฉํ•  ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ ์˜ค๋Š˜์€ ๋” ๋ฒ ์ด์งํ•œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ณจ๋ผ ์ด์•ผ๊ธฐ๋ฅผ ํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ์ฒด ๊ฐ„ ์†Œํ†ต์ด ์ด๋ฃจ์–ด์งˆ ๋•Œ 3๊ฐ€์ง€ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. โ€ขNotification โ€ขDelegation โ€ขKVO ์˜ค๋Š˜์€ ์ด ์ค‘์—์„œ๋„ Notification์„ ๊ณจ๋ผ๋ดค์Šต๋‹ˆ๋‹ค! ๊ธ€์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์—... Swift3 ์ด์ „๊นŒ์ง„ NSNotificationCenter๋ผ๊ณ  ๋ถˆ๋ ธ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ StackOverflow๋‚˜ Medium ๋“ฑ ์˜ˆ์ „ ๊ธ€์—์„œ๋Š” NSNotificatio..

iOS 2021. 7. 27. 17:53
[iOS] Update Cycle: ๋ทฐ ์—…๋ฐ์ดํŠธ ๋ฉ”์†Œ๋“œ

iOS ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ ๋งค์ผ ๋ทฐ์™€ ์‚ฌ์šฉ์ž์™€ interaction์ด ๊ฐ€๋Šฅํ•œ ๋‹ค์–‘ํ•œ UI Components๋ฅผ ๋งŒ๋“ค์ง€๋งŒ "View Rendnering" ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ๋ถ€์กฑํ•จ์„ ๋Š๊ผˆ์Šต๋‹ˆ๋‹ค. View์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ๋ถ€์กฑํ•˜๋‹ˆ ๋ฌธ์ œ ํ•ด๊ฒฐ๋„ ์ž˜ ์•ˆ๋๋˜ ๊ฒƒ ๊ฐ™์•„์š”. ์—๋Ÿฌ๋‚˜ ๋ฒ„๊ทธ๊ฐ€ ์ƒ๊ธฐ๋ฉด ๋ฌด์ž‘์ • ๋ทฐ ๋””๋ฒ„๊ฑฐ๋ฅผ ์—ด๊ณ  ์ด๋ฆฌ์ €๋ฆฌ ๋Œ๋ ค๋ณด๊ณ  view hierarchy๋ฅผ ๋ด๋„ ํ•ด๋‹ต์„ ๋ชป ์ฐพ๊ธฐ ์ผ์‘ค์˜€์ฃ . ๊ทธ๋ž˜์„œ Layout, Display ๊ทธ๋ฆฌ๊ณ  Constraint๋ฅผ ๊ด€์žฅํ•˜๋Š” Update Cycle์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Main Run Loop์™€ Update Cycle Main run loop์™€ Update Cycle์— ๋Œ€ํ•ด ๊ณต๋ถ€๋ฅผ ํ•ด๋ณด์…จ๋‹ค๋ฉด ์•„๋ž˜ ๋‘ ๋‹ค์ด์–ด๊ทธ๋žจ์„ ํ•œ ๋ฒˆ ์ฏค์€ ๋ณด์…จ์„ ๊ฒƒ ๊ฐ™์•„์š”. ์ขŒ์ธก์—๋Š” ์•ฑ์ด ์‹คํ–‰๋œ ํ›„ ์‚ฌ์šฉ์ž๊ฐ€ ..

iOS 2021. 7. 11. 18:23