[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 ๊ฑธ๊ณ  ํ–ˆ๋Š”๋Žˆใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ ์ด๋ฏธ์ง€ ๋ทฐ ์ „์ฒด๊ฐ€ ์›€์ง์—ฌ๋ฒ„๋ฆฌ๋„คใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ ์•„ ์ง„์งดใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ ์Šคํฌ๋กค ๋ทฐ์— ๋„ฃ์–ด๋ณด๋ฉด ๋˜๋ ค๋‚˜? ๋‹ค์‹œ ์ž‘์—…ํ•˜๋Ÿฌ ์ด์ดใ…‹ใ…‹