Potato
์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์žก๋‹ˆ๋‹ค?๐Ÿฅ” ^___^ ๐Ÿ˜บ github ๋ฐ”๋กœ๊ฐ€๊ธฐ ๐Ÿ‘‰๐Ÿป
๋ฐ˜์‘ํ˜•

potato's iOS Story/๊ฐœ๋ฐœํ•˜๋ฉด์„œ ๋งŒ๋‚œ ์นœ๊ตฌ๋“ค 25

[์ž๋ฃŒ๊ตฌ์กฐ] Set๊ณผ Array์ค‘์— Set์ด ์™œ ๋” ๋น ๋ฅธ๊ฑธ๊นŒ?

โšซ๏ธ ์ด ๊ธ€์„ ์ž‘์„ฑํ•˜๋Š” ์ด์œ  ์•„์ฃผ ๊ธฐ์ดˆ์ ์ธ ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค๊ฐ€, ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ์•„์ฃผ ๊ธฐ์ดˆ์ ์ธ ๊ฒƒ์„ ๋‚ด๊ฐ€ ๊ฐ„๊ณผํ•˜๊ณ  ํ’€์—ˆ๊ธฐ ๋–„๋ฌธ! ๊ผญ ๊ธฐ์–ตํ•ด๋‘๊ธฐ ์œ„ํ•ด์„œ ํฌ์ŠคํŒ…์„ ์ž‘์„ฑํ•œ๋‹ค. โ–ช๏ธ ๋ฐฑ์ค€ 1181๋ฒˆ - ๋‹จ์–ด์ •๋ ฌ ๋ฌธ์ œ https://www.acmicpc.net/problem/1181 1181๋ฒˆ: ๋‹จ์–ด ์ •๋ ฌ ์ฒซ์งธ ์ค„์— ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 20,000) ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋‹จ์–ด๊ฐ€ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 50์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค. www.acmicpc.net ์ด ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ๋ฌด์Šจ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋ƒ๊ตฌ??? ๋ฐ”๋กœ, ์‹œ๊ฐ„์ดˆ๊ณผ๋ฅผ ๋งˆ์ฃผ์ณ๋ฒ„๋ฆฐ ๊ฒƒ! ์•„๋ฌด๋ฆฌ ์‚ดํŽด๋ด๋„, ์ด์œ ๋Š” array๋ฅผ ์‚ฌ์šฉํ•ด์„œ '์ค‘๋ณต์ฒ˜๋ฆฌ'๋ฅผ ํ•ด์ฃผ๋Š” ๊ณผ์ •์—์„œ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚œ ๊ฒƒ ๊ฐ™์•˜๋‹ค..

[UIKit] UIButton - unrecognized selector sent to class ์—๋Ÿฌ (UIBarButtonItem์˜ Target ์‚ดํŽด๋ณด๊ธฐ)

โšซ๏ธ UIBarbuttonItem์„ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ, ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋‹ˆ๊นŒ ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค! โš ๏ธ unrecognized selector sent to class 0x100d75190 ์ง„์งœ์ง„์งœ ๊ฐ„๋‹จํ•œ tableView๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์™œ ์ด๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ๋‚˜๋Š” ๊ฒƒ์ธ๊ฐ€!! ์ง€๊ธˆ ์ด๋Ÿฐ ๊ฐ„๋‹จํ•œ ํ…Œ์ด๋ธ”๋ทฐ๋ฅผ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ ์œ„์— UINavigationBarButton๋งŒ ํด๋ฆญํ•˜๋ฉด ์•ฑ์ด ๊บผ์ง€๋ฉด์„œ ์ €๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค. ๋ฐ”๋กœ๋ฐ”๋กœ,,,, ๋ญ”๊ฐ€ selector์—์„œ ์•ก์…˜์ด ์ž˜ ์ „๋‹ฌ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ ๊ฐ™์€๋ฐ,, ์ผ๋‹จ 1์ฐจ์ ์œผ๋กœ ๊ตฌ๊ธ€๋ง์„ ํ•ด๋ดค๋‹ค. 1. ์Šคํ† ๋ฆฌ๋ณด๋“œ๋กœ ๊ฐœ๋ฐœํ–ˆ์„ ๊ฒฝ์šฐ, ํ•˜๋‚˜์˜ ๋ฒ„ํŠผ์— ๋‘ ๊ฐœ ์ด์ƒ์ด IBAction์ด ์—ฐ๊ฒฐ๋˜์–ด์„œ ๊ทธ๋ ‡๋‹ค๊ณ  ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋‚œ ์ฝ”๋“œ๋ฒ ์ด์Šค๋กœ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์œผ๋‹ˆ ์ด ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์€ ํ†ตํ•˜์ง€ ์•Š์ง€! ์•„๋ฌด๋ฆฌ๊ทธ๋ž˜๋„ ๊ฐ™์€ ์—๋Ÿฐ๋ฐ ๊ฐ™์€ ์›์ธ์ด..

[UIKit] Cell์— shadow์™€ cornerRadius๊ฐ€ ๋™์‹œ์— ์•ˆ๋จนํž ๋•Œ

๐Ÿ“ฑ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์€ ๋ทฐ ์ด๋ ‡๊ฒŒ ์ฝœ๋ ‰์…˜๋ทฐ ์…€๋“ค์— ๊ทธ๋ฆผ์ž๊ฐ€ ์ ธ์žˆ๋Š” ๋ทฐ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค! ๐ŸŸฃ Cell์— ๊ทธ๋ฆผ์ž์™€ cornerRadius๋ฅผ ๋™์‹œ์— ๋„ฃ์–ด๋ณด์ž label.layer.shadowOffset = CGSize(width: 10, height: 10) label.layer.shadowOpacity = 0.23 label.layer.shadowRadius = 4 label.layer.masksToBounds = false label.layer.cornerRadius = 10 ๐Ÿ˜ถ ์—ฅ! ๊ทธ๋ฆผ์ž๋งŒ ๋“ค์–ด๊ฐ€๊ณ  radius๊ฐ€ ์•ˆ๋“ค์–ด๊ฐ€์ž–์•„! ์•„์ฐจ์ฐจ, radius ๋„ฃ์œผ๋ ค๋ฉด masksToBounds true ํ•ด์ค˜์•ผํ•˜์ง€ label.layer.shadowOffset = CGSize(width: 10, height: 10) labe..

[UIKit] labelํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•ด์„œ CollectionView cell ํฌ๊ธฐ์— ๋„ฃ์–ด์ฃผ๊ธฐ

๐ŸŸฃ ํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ ์ง€๊ธˆ ํ•ด๋‹น ๋ทฐ์— ์žˆ๋Š” ์นดํ…Œ๊ณ ๋ฆฌ ๋ฒ„ํŠผ์€ collectionView๋กœ ๊ตฌํ˜„์ค‘์ด๋‹ค. ์ผ๋‹จ ๋‚ด๋ถ€ cell์— ์ž„์‹œ ๊ฐ’์„ ๋„ฃ์–ด์„œ ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์คฌ๋‹ค. ๊ทธ๋ƒฅ ๊ธ€์ž ํฌ๊ธฐ์— ์ƒ๊ด€ ์—†์ด ์ผ์ •ํ•œ ๋ฒ„ํŠผ ํฌ๊ธฐ๋ฅผ ๊ฐ–๋Š”๋‹ค. ํ•˜์ง€๋งŒ ๋‚ด๊ฐ€ ๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ํ™”๋ฉด์€ ์•„๋ž˜์ฒ˜๋Ÿผ ๊ธ€์ž ํฌ๊ธฐ์— ๋งž์ถฐ์„œ ๋ฒ„ํŠผ์˜ ํฌ๊ธฐ๋„ ๋ฐ”๋€Œ๋Š” ๊ฒƒ,, ์ด๋ ‡๊ฒŒ ํ•˜๊ณ ์‹ถ๋‹ค. ๐ŸŸฃ Cell์˜ ํฌ๊ธฐ๋ฅผ ์ƒ์ˆ˜๊ฐ’์œผ๋กœ ๋งŒ๋“ค๋ฉด ์•ˆ๋ผ! ๐Ÿ’ก cell ๋‚ด๋ถ€์— ๋“ค์–ด๊ฐ€๋Š” label์˜ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•ด์„œ cell์˜ ํฌ๊ธฐ๋กœ ์ง€์ •ํ•ด์ฃผ์ž. ์š”๋ชจ์กฐ๋ชจ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ• ๋•Œ button์„ ๋งŒ๋“ค๋•Œ ์ด๋Ÿฐ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ์—ˆ๋‹ค. ์ด ๋ถ€๋ถ„์ด ์ƒ๊ฐ๋‚˜์„œ ๋ฐ”๋กœ ์‹คํ–‰์— ์˜ฎ๊ฒจ๋ดค๋‹ค. label์˜ ํฌ๊ธฐ๋ฅผ ๊ตฌํ•˜๋Š” ์ฝ”๋“œ ์•„๋ฌด๋ž˜๋„ ๋ฒ„ํŠผ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฉด์—์„œ ์‚ฌ์ด์ฆˆ๋ฅผ ๊ตฌํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ ๊ฐ™์•„์„œ, size๋ฅผ ๊ตฌํ•˜๋Š” ๋งค๋‹ˆ์ €๋ฅผ ๋งŒ..

[UIKit] UIPageControl์„ ์‚ฌ์šฉํ•ด์„œ UIView ์ „ํ™˜ํ•˜๊ธฐ (feat. ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์˜ ์‚ฌ๊ณ ๋ฅผ ํ•ด๋ณด๋‹ค)

๐Ÿ“ฑ ๋‚ด๊ฐ€ ๋‹ด๋‹นํ•œ ๋ทฐ ๋‚˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๋ทฐ๋ฅผ ๋‹ด๋‹นํ–ˆ๊ณ , ํ•ด๋‹น ๋ทฐ๋Š” ์Šคํฌ๋กค์ด ๋…ํŠนํ•œ ๋ฐฉ์‹์œผ๋กœ ์ ์šฉ๋œ๋‹ค. ์–ด๋–ค ๋ฐฉ์‹์ด๋ƒ๋ฉด, ๊ทธ ์•„๋ž˜ ํ™”๋ฉด์ฒ˜๋Ÿผ, ์ผ์ • ์Šคํฌ๋กค์ด ๋˜๋ฉด ์‡ฝ! ์ž๋™์œผ๋กœ ๋„˜์–ด๊ฐ€์•ผํ–ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋„˜์–ด๊ฐ€์•ผํ–ˆ๋‹ค. ๋‚ด๊ฐ€ ๊ตฌํ˜„ํ•ด์•ผํ•  ํ™”๋ฉด์€, ์ด ๋‘ ํ™”๋ฉด์ด๊ณ , ์•„๋ž˜๋กœ ๋‚ด๋ฆฌ๋ฉด, ์˜ค๋ฅธ์ชฝํ™”๋ฉด์ด, ์œ„๋กœ ์˜ฌ๋ฆฌ๋ฉด ์™ผ์ชฝํ™”๋ฉด์ด ๋‚˜์™€์•ผํ–ˆ๋‹ค. ํ•ด๋‹น ๋ทฐ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์— ๋Œ€ํ•ด์„œ ๊ณ ๋ฏผํ–ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์„๊นŒ? ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์„ ์ƒ๊ฐํ–ˆ๋‹ค. (์‚ฌ์‹ค ์ •๋ง ๊ฐ„๋‹จํ•œ ๋ฐฉ์‹์ด ์žˆ์—ˆ์ง€๋งŒ, ํ•ด๋‹น ๋ฐฉ์‹์„ ์ ‘ํ•ด๋ณด์ง€ ๋ชปํ–ˆ๋˜ ๋‚˜๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ฐˆ๋ž˜ ๊ธธ์—์„œ ํ—ค๋งธ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.) 1๏ธโƒฃ ์ฒซ๋ฒˆ์งธ ์ƒ๊ฐ - PageControl ์ด๋ผ๋Š” ๋…€์„์„ ์‚ฌ์šฉํ•ด๋ณด์ž ์™ผ์ชฝ์˜ ์ด๋ฏธ์ง€๊ฐ€ ๋‚ด๊ฐ€ ์ฒ˜์Œ์— ์ƒ๊ฐํ–ˆ๋˜ ๊ตฌ์„ฑ์ด๋‹ค. ๋‘๊ฐœ์˜ UIView๋ฅผ PageControl ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด..

[UIKit] ๋ฒ„ํŠผ์ด ํˆฌ๋ช…์ƒ‰์ด๋ผ์„œ ๊ทธ๋ฆผ์ž๊ฐ€ ์ƒ๊ธฐ์ง€ ์•Š๋Š” ๋ฌธ์ œ!

ํ•ด๋‹น ๊ธ€๊ณผ ๊ด€๋ จ๋œ Pull Request๋ฅผ ์˜ฌ๋ ค๋‘ก๋‹ˆ๋‹ค. ์™œ๋ƒ๋ฉด!! ๊ต‰์žฅํžˆ ์ž์„ธํ•˜๊ฒŒ ๋ฆฌ๋ทฐํ•ด๋†ง๊ธฐ ๋•Œ๋ฌธ~~ ๊ฐ€์„œ ์–ด๋–ป๊ฒŒ ๊ฐœ๋ฐœํ–ˆ๋Š”์ง€, ์ „์ฒด ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ›„ํ›„ ๐Ÿ˜‡ https://github.com/DeveloperAcademy-POSTECH/MacC-Team-EarthValley80/pull/117 [FEAT] ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” GotoSomewhereButton์˜ UI๋ฅผ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. by deslog · Pull Request #117 · DeveloperAca ์—„์ฒญ TMI PR์ด ๋˜์—ˆ๋Š”๋ฐ์š”,, ๋ฒ„ํŠผํ•˜๋‚˜๊ณ ์น˜๊ฒ ๋‹ค๊ณ  ํ•˜๋ฃจ๋ฅผ ๋ชฝ๋•… ์จ๋จน์–ด์„œ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค,, ๊ทธ๋ฆฌ๊ณ  ์งˆ๋ฌธ์ด,, ์žˆ์–ด์š”.. ์ข€๋งŒ ์•„๋ž˜๋กœ ๋‚ด๋ ค๊ฐ€๋ฉด ์งˆ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค ํ˜ธํ˜ธํ˜ธ,,, โค๏ธ โšซ๏ธ Issue Number close #115 โšซ๏ธ gith..

[UIKit] collectionview ํ„ฐ์น˜ ์ด๋ฒคํŠธ ๋„ฃ๊ธฐ (ํ„ฐ์น˜๋˜๋ฉด gif ๋‹ค์‹œ ๋™์ž‘ํ•˜๊ฒŒ ํ•˜๊ธฐ)

์ƒ๊ฐํ•ด๋ณด๋‹ˆ๊นŒ, collectionview์— ํ„ฐ์น˜์ด๋ฒคํŠธ๋ฅผ ๋„ฃ์–ด๋ณธ์ ์ด ์—†๋„ค? ์ƒ๊ฐํ•ด๋ณด๋‹ˆ๊นŒ, collectionview๋ฅผ ํ„ฐ์น˜ํ•˜๋Š” ์ด๋ฒคํŠธ๋ฅผ ๊ฐœ๋ฐœํ•ด๋ณธ์ ์ด ์—†๋‹ค. ์ดํ”ํ•œ๊ฑธ?๐Ÿคฏ๐Ÿ˜ฑ ๊ทธ๋™์•ˆ ๋‚œ ๋ญ˜ ํ•œ๊ฑด๊ฐ€. ๋ญ ์จ‹๋“ ,,, ์ด๋ฒˆ์— ํ•ด๋ณด๋ฉด ๋˜๋‹ˆ๊นŒ ^___^ override ๋กœ isSelected ๋ณ€์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ collectionviewCell์—๋Š” isSelected ๋ฅผ override ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. isSelected๋ณ€์ˆ˜๋Š”, ์…€์ด ํ„ฐ์น˜๊ฐ€ ๋œ ์œ ๋ฌด๋ฅผ Bool๊ฐ’์œผ๋กœ ํ‘œํ˜„ํ•ด์ค€๋‹ค. ๋‚˜๋Š” ์šฐ์„  json์œผ๋กœ gifํŒŒ์ผ์„ ๋ฐ›์•„์„œ, Lottie๋ผ๋Š” ์จ๋“œํŒŒํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด์„œ gif๋ฅผ CollectionViewCell๋‚ด๋ถ€์— ์‚ฝ์ž…ํ–ˆ๋‹ค. ์ด isSelected ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ, ํ„ฐ์น˜๊ฐ€ ๋œ ๊ฒฝ์šฐ lottie๊ฐ€ ์žฌ์ƒ๋˜๊ฒŒ ๋งŒ๋“ค ๊ฒƒ์ด๋‹ค...

[UIKit] cell์ด ๋“ฑ๋ก๋˜์ง€ ์•Š์•˜๋‹ค๊ณ  ํ•˜๋ฉด์„œ ์˜ค๋ฅ˜๊ฐ€๋‚˜์„œ ๊ฐ‘์ž๊ธฐ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๊ฐ€ ๊บผ์ง€๋Š”๋Ž์‡ผ?

์ด๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด์„œ simulator๊ฐ€ ํ™–! ๊บผ์ง€๋Š” ์‚ฌํƒœ๊ฐ€๋ฐœ์ƒํ–ˆ๋‹ค. ์ด๋ ‡๊ฒŒ collecionView์™€ CollectionViewCell์€ ์ž˜ ๋œจ์ง€๋งŒ, ์Šคํฌ๋กค ๋‚ด๋ ค๊ฐ€๋‹ค๊ฐ€ ์•„๋ž˜๋ถ€๋ถ„์—์„œ ํ›… ๊บผ์ง€๋Š” ์‚ฌํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ ์š”? ์—๋Ÿฌ๋ฅผ ์ž˜ ์ฝ์–ด๋ด…์‹œ๋‹ค. โš ๏ธ Thread 1: "could not dequeue a view of kind: UICollectionElementKindCell with identifier AchieveSummaryLottieCollectionViewCell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard” ์ง€๊ธˆ ๋‚ด๊ฐ€ cell๋กœ ๋„์›Œ์•ผํ•˜๋Š” ํ˜•ํƒœ๊ฐ€ ๋‘๊ฐ€์ง€์ด๋‹ค. ๊ทธ๋ž˜์„œ ๋‘๊ฐœ์˜ ..

[UIKit] collectionView์˜ ์…€๋“ค์„ ์™ผ์ชฝ์œผ๋กœ ์–ด๋–ป๊ฒŒ ์ •๋ ฌํ• ๊นŒ!? (UICollectionViewFlowLayout, UICollectionViewDelegateFlowLayout)

์ง€๊ธˆ ๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ๋ทฐ ์ด๋ ‡๊ฒŒ ์ปฌ๋ ‰์…˜๋ทฐ๋ฅผ ๋„์›Œ์•ผํ•œ๋‹ค. ๋‚ด๊ฐ€ ์ด์ „์— ์งœ๋†จ๋˜ ์ฝ”๋“œ๊ฐ€ ์žˆ์–ด์„œ ๊ทธ ์ฝ”๋“œ๋ฅผ ์ด์šฉํ• ๊ฒƒ์ด๋‹ค. ์ปฌ๋ ‰์…˜๋ทฐ๋ฅผ ๋„์› ๋‹ค. ๊ทผ๋ฐ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋‹ค. ์ด๋ ‡๊ฒŒ ๋นˆ๊ณต๊ฐ„์ด ์ค‘์•™์— ์ƒ๊ธฐ๋Š” ๊ฒƒ์ด๋‹ค! ๊ธฐ๋ณธ์ ์œผ๋กœ ์ปฌ๋ ‰์…˜๋ทฐ๋Š” ์–‘์ชฝ ๋ ˆ์ด์•„์›ƒ์„ ๋งž์ถ”๋„๋ก ์ •๋ ฌ์ด ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ž˜์„œ ์™ผ์ชฝ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋”ฐ๋กœ ์ปค์Šคํ…€ํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ๋„์ „ํ•ด๋ณด์ž! layoutAttributesForElements() ์ธํ„ฐ๋„ท์— ๋งŽ์€ ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ์žˆ์—ˆ๊ณ , ๊ทธ ์ค‘ ์ด ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ๊ฐ™์•˜๋‹ค. https://velog.io/@yoonah-dev/CollectionView-Left%EC%A0%95%EB%A0%AC CollectionView Left์ •๋ ฌ CollectionView Cell๋“ค์„ ์™ผ์ชฝ ์ •๋ ฌํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. velog.io clas..

[UIKit] UIButton Configuration ๋ถ„๊ธฐ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ์ž (feat. custom button ๋งŒ๋“ค๊ธฐ)

 ์˜ค๋Š˜ ๋งŒ๋‚œ UIButton~~ ์šฐ๋ฆฌ ํƒ€๊ฒŸ์ด 14, 15์˜€๋‚˜ ์ง€๊ธˆ๋ถ€ํ„ฐ ๊ทธ๋Ÿผ ๋Œ€์‘์„ ํ•ด์ค˜์•ผํ•˜๋Š”๊ฐ€? #available ์œผ๋กœ → ๋‹ต๋ณ€์€ ใ…‡ใ…‡!!! UIButton ๋ถ„๊ธฐ์ฒ˜๋ฆฌํ•ด์ฃผ์„ธ์š”~ ์šฐ๋ฆฌ์˜ ์•ฑ ํƒ€๊ฒŸ์€ iOS 14.0 ์ด์ƒ์ด๋‹ค. ๊ทธ๋ƒฅ ์ผ๋ฐ˜ UIButton์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋„ ๋˜๊ฒ ๊ฑฐ๋‹ˆ~ ์‹ถ์–ด์„œ ๊ทธ๋ƒฅ ์ž‘์„ฑํ–ˆ๋”๋‹ˆ, ์ด๋Ÿฐ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›์•˜๋‹ค. ์•„ํ•˜!!! ์ผ๋ฐ˜ ๋ฒ„ํŠผ์—์„œ ์ž‘์„ฑํ•˜๋˜ ์ฝ”๋“œ๋“ค์ด iOS 15.0 ์—์„œ๋Š” ์•„์˜ˆ ์ž‘๋™์„ ์•ˆํ•  ์ˆ˜ ๋„ ์žˆ๊ฒ ๊ตฌ๋‚˜!! ๊ทธ๋Ÿผ ๋ฌด์กฐ๊ฑด ๋ถ„๊ธฐ์ฒ˜๋ฆฌํ•ด์ค˜์•ผ์ง€..์•”…๊ทธ๋ž˜ ใ… ใ…  (์ž๋™์œผ๋กœ ์ข€ ํ•ด์ฃผ์ง€) ์ƒ์„ฑ๋˜๋Š” ๋ฒ„ํŠผ์—๋‹ค๊ฐ€ ์•„๋ž˜์ฒ˜๋Ÿผ ๋ถ„๊ธฐ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ์—ˆ๋‹ค. private func configureUI() { if #available(iOS 15.0, *) { var buttonConfig = UIButton.Confi..

๋ฐ˜์‘ํ˜•