๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€40

[iOS] TIL_230728 cell select vs gesture ํ…Œ์ด๋ธ” ๋ทฐ์—์„œ๋Š” ํƒญ์ œ์Šค์ฒ˜๋กœ ํ‚ค๋ณด๋“œ๋ฅผ ์ž˜ ์•ˆ ๋‚ด๋ฆผ. ๋“œ๋ž˜๊ทธ ํ•ด์„œ ๋‚ด๋ฆผ. ํ…Œ์ด๋ธ”๋ทฐ์— ์Šคํฌ๋กคํ•˜๋ฉด ํ‚ค๋ณด๋“œ ๋‚ด๋ ค๊ฐ€๋„๋ก ์‰ฝ๊ฒŒ ์„ค์ • ํ•  ์ˆ˜ ์žˆ์Œ. ํ…Œ์ด๋ธ”๋ทฐ ์…€ ํฌ๊ธฐ ๋„ˆ๋น„: ๊ธฐ๊ธฐ์˜ ๋„ˆ๋น„ ๋†’์ด: ์กฐ์ • ๊ฐ€๋Šฅ ๊ฐ„๊ฒฉ: ๋ฌด์กฐ๊ฑด ๋ถ™์–ด์žˆ์Œ ( ์ปฌ๋ ‰์…˜ ๋ทฐ๋Š” ๊ฐ€๋Šฅ . tableview์—์„œ ๋„์–ด์ ธ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๊ฒƒ์€ ์•ˆ์— uiview ๋„ฃ์–ด์„œ inset ์ค€ ๊ฒƒ → ์ด ๋ฐฉ๋ฒ•์€ ๊ทธ๋ฆผ์ž ๋„ฃ์„ ๋•Œ ๋ฌธ์ œ) button image symbol ํฌ๊ธฐ ๋ฐ”๊พธ๊ธฐ SFSymbol iOS 13 ์ดํ›„ ๋“ฑ์žฅ. iOS 12์—์„œ๋Š” ์—์…‹ ์ถ”๊ฐ€ํ•ด์„œ ๋„ฃ์–ด์•ผํ•จ. configuration์—์„œ font scale๋กœ ๋Œ€์‘ ๊ฐ€๋Šฅ Cell์˜ ์ฒดํฌ ๋ฐ•์Šค๋Š” ๋ณดํ†ต ๋ฒ„ํŠผ ๋ง๊ณ  ์ด๋ฏธ์ง€๋ทฐ๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ๋„ํ•จ. ์…€์ž์ฒด๋ฅผ ํด๋ฆญํ–ˆ์„ ๋•Œ๋„ ์ฒดํฌ ํ• ์ˆ˜ ์žˆ๋„๋ก .. 2023. 8. 1.
[iOS] TIL_230727 UserDefaults ์ €์žฅํ•˜๋Š” ์‹œ๊ธฐ ๋ทฐ๊ฐ€ ์‚ฌ๋ผ์งˆ ๋•Œ๋งŒ ์ €์žฅํ•˜๊ฒŒ ๋˜๋ฉด ๋งŒ์•ฝ ์‚ฌ์šฉ์ž๊ฐ€ ํ™”๋ฉด์„ ๋‚ ๋ ค์„œ ์—†์• ๋ฒ„๋ ธ์„ ๋•Œ ์ €์žฅ ์•ˆ ๋จ. → ๊ทธ๋ƒฅ ์ˆ˜์‹œ๋กœ ํ•„์š”ํ• ๋•Œ๋งˆ๋‹ค ์œ ์ €๋””ํด์ธ ์— ์ €์žฅํ•˜๋Š” ๊ฒŒ ์ข‹์Œ. ๊ทธ ์ •๋„๋Š” ํšจ์œจ์— ๋ฌธ์ œ X ๋ทฐ ๊ฐฑ์‹ ์€ ์–ธ์ œ ํ•˜๋Š” ๊ฒŒ ์ข‹์„๊นŒ? viewWillAppear : ํ™”๋ฉด์ด ๋œฐ ๋•Œ๋งˆ๋‹ค ํ˜ธ์ถœ ๋˜๋Š” ํ•จ์ˆ˜. UserDefaults ๊น”๋”ํ•˜๊ฒŒ ์“ฐ๋Š” ๋ฒ• ์œ ์ €๋””ํด์ธ  ๊ฐ’์ด ๋‹ค๋ฅธ ํ™”๋ฉด(๋‹ค๋ฅธ ํƒญ๋ฐ” ๋“ฑ)์—์„œ ๋ณ€๊ฒฝ๋˜๊ณ  ํ˜„์žฌ ํ™”๋ฉด ์™”์„๋•Œ ๋ฐ”๋กœ๋ฐ”๋กœ ์—…๋ฐ์ดํŠธ ๋œ ๋ชจ์Šต์„ ํ™•์ธํ•˜๋ ค๋ฉด viewWillAppear(_:)์—์„œ ์œ ์ €๋””ํด์ธ  ๊ฐ’ ๋ถˆ๋Ÿฌ์™€์ค˜์•ผํ•จ. UserDefaults์— ์ €์žฅ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’ Int, String, Bool, Float, String Array ๊ทธ ์™ธ์˜ enum, class ๋“ฑ์€ ์ธ์ฝ”๋”ฉ์ด๋‚˜ ๋””์ฝ”๋”ฉ ๋“ฑ์˜ ๊ณผ.. 2023. 7. 31.
[iOS] TIL_230726 ํƒœ๊ทธ ์‚ฌ์šฉํ•˜๊ธฐ ์ฝ”๋“œ๋กœ ํƒœ๊ทธ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ• ํ…์ŠคํŠธํ•„๋“œ IBAction ์—ฐ๊ฒฐ ์‹œ ์ฃผ์˜์‚ฌํ•ญ ์œ„์— ์ฒซ๋ฒˆ์งธ ํ…์ŠคํŠธ ํ•„๋“œ์—์„œ ๋Œ์–ด๋‹ค๊ฐ€ Did End On Exit ์ด๋ฒคํŠธ๋กœ ์„ค์ •ํ•ด์„œ IBAction ํ•จ์ˆ˜ ๋งŒ๋“ค์—ˆ๋”๋ผ๋„ ๋‘๋ฒˆ์งธ ํ…์ŠคํŠธ ํ•„๋“œ์— ์‚ฌ์ง„์ฒ˜๋Ÿผ ๋Œ์–ด๋‹ค ๋„ฃ์–ด์ฃผ๋ฉด default ์•ก์…˜์ธ Editing Did End ๋กœ ์„ค์ • ๋จ. ์ธ์ŠคํŽ™ํ„ฐ์—์„œ ์›ํ•˜๋Š” ์•ก์…˜์œผ๋กœ ์ˆ˜์ • ํ•ด์ฃผ๋˜์ง€ ์ธ์ŠคํŽ™ํ„ฐ์—์„œ ๋Œ์–ด๋‹ค ์—ฐ๊ฒฐ guard ๋ฌธ guard ๋ฌธ์€ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๊ฐ€ ์•„๋ž˜์ชฝ ์•„๋‹Œ ์ฝ”๋“œ์œ„์ชฝ์—์„œ ์ผ์–ด๋‚จ. guard ๋ฌธ์€ return ์•ˆ ํ•ด์ฃผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์˜ค๋ฅ˜๋‚จ. ํƒœ๊ทธ๊ฐ’ ์—ด๊ฑฐํ˜•์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ํ…์ŠคํŠธ ํ•„๋“œ ๋“ค์— ์“ธ ํƒœ๊ทธ ๊ฐ’๋“ค ์—ด๊ฑฐํ˜• rawValue์— ๋ฏธ๋ฆฌ ์ง€์ • enum TextFieldType: Int { case id = 100 case email = 20.. 2023. 7. 31.
[iOS] TIL_230725 1. Blog ์ž‘์„ฑ๋ฒ• ๋‹จ์ˆœ ์‚ฌ์šฉ๋ฒ• ๋ณด๋‹ค๋Š” ์ƒ๊ฐ๊ณผ ์„ค๊ณ„๊ฐ€ ๋“ค์–ด๊ฐ„ ํ•ด๊ฒฐ๋ฐฉ๋ฒ• ๋“ฑ์„ ์ ๋Š”๊ฒŒ ๋‚˜์Œ ์–‘๋ณด๋‹ค๋Š” ์งˆ ์ฃผ 1ํšŒ ์ •๋„๊ฐ€ ์ ๋‹น. ํ•œ ์ฃผ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ ์ •๋ฆฌ ๋“ฑ. 2. Open Source License ํฐ ์–ดํ”Œ๋“ค ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด์„ ์Šค ํ™•์ธํ•ด์„œ ์–ด๋–ค ๊ฒƒ๋“ค ์“ฐ๋Š”์ง€ ํ™•์ธํ•ด๋ณด๊ธฐ ์Šคํƒ€ ๋ช‡๋ฐฑ๊ฐœ๋งŒ ๋„˜์–ด๋„ ์œ ๋ช…ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•จ. ๋‹ค๋ฅธ์‚ฌ๋žŒ์ด ๋งŒ๋“  ์ฝ”๋“œ๋ผ ์›๋ฆฌ๋ฅผ ๊นŠ๊ฒŒ ์ดํ•ดํ•˜์ง„ ์•Š์•„๋„ ๋จ. ์–ด์ฐจํ”ผ ์• ํ”Œ์ฝ”๋“œ๋กœ ํ•œ ๊ฒƒ. ๋ผ์ด์„ ์Šค ์ž˜ ํ™•์ธ ํ•ด์•ผ ํ•จ. - ๋ณดํ†ต ์šฐ๋ฆฌ๊ฐ€ ์“ฐ๋Š” ๊ฒƒ๋“ค์€ ๋ช…์‹œ๋งŒ ๋˜์–ด์žˆ์œผ๋ฉด ๋จ. Reference GitHub - raulriera/TextFieldEffects: Custom UITextFields effects inspired by Codrops, built using Swift Custom UITextFields ef.. 2023. 7. 30.
[iOS] TIL_230719 โœ… ์ด๋ฏธ์ง€์™€ ๋ผ๋ฒจ ๋“ค์–ด๊ฐ„ ๋ฒ„ํŠผ ๋งŒ๋“ค๊ธฐ ๋ฒ„ํŠผ์˜ ์ด๋ฏธ์ง€๋Š” ์ค„์–ด๋“ค์ง€ ์•Š์Œ → ๋””์ž์ด๋„ˆ๊ฐ€ ํฌ๊ธฐ ์กฐ์ ˆํ•ด์„œ ๋ฆฌ์†Œ์Šค ์คŒ. →์ด๋ฏธ์ง€๋ทฐ๋Š” ์‚ฌ์ด์ฆˆ ์กฐ์ ˆ ๊ฐ€๋Šฅํ•ด์„œ ๋” ์ˆ˜์›”ํ•จ. →๋ฒ„ํŠผ ์Šคํƒ€์ผ์„ default๋กœํ•˜๋ฉด ๋ฒ„ํŠผ ๋‚ด ์ด๋ฏธ์ง€๋„ ์ˆ˜์ • ๊ฐ€๋Šฅ but ํ…์ŠคํŠธ๋ฅผ ์ด๋ฏธ์ง€ ์•„๋ž˜๋กœ๋Š” ๋ชป ๋‚ด๋ฆผ ์ด๋ฏธ์ง€์™€ ๋ผ๋ฒจ์„ ๋งŒ๋“ค๊ณ  ๊ทธ ์œ„์— ๋ฒ„ํŠผ์„ ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐ๋„ ๊ฐ€๋Šฅ Plain Style ์ผ ๋•Œ : ๋ฒ„ํŠผ ์ค„์—ฌ๋„ ์ด๋ฏธ์ง€ ์•ˆ ์ค„์–ด๋“ฌ. Default Style ์ผ ๋•Œ : ์ค„์ด๋ฉด ์ค„์–ด๋“ค์ง€๋งŒ ํ…์ŠคํŠธ ๊ฐ€๋ ค์ง → ํ…์ŠคํŠธ ์—†๋Š” ๋ฒ„ํŠผ์ผ ๋•Œ๋งŒ ์“ธ๋งŒํ• ๋“ฏ → ์ด๋ฏธ์ง€ ๋” ํฌ๊ฒŒ๋Š” ์•ˆ ๋จ ๊ฒฐ๋ก  : ๋ฒ„ํŠผ์€ ์ž์œ ์ž์žฌ๋กœ ์›ํ•˜๋Š” ๋ชจ์–‘ ๋งŒ๋“ค๊ธฐ๊ฐ€ ํž˜๋“ฆ.. ๋‹ค์–‘ํ•˜๊ฒŒ ์†์„ฑ ์„ค์ •ํ•ด๋ณด๋ฉด์„œ ์ตํ˜€์•ผํ•จ. (๊ฑ ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค์–ด์„œ ๋„ฃ๋Š”๊ฒŒ ๋‚ซ์€๋“ฏ,,,) โœ… User Defined Runtime At.. 2023. 7. 25.
[iOS] TIL_230718 ์Šคํ† ๋ฆฌ๋ณด๋“œ ์—ฌ์ „ํžˆ ํ˜„์—…์—์„œ ๋งŽ์ด ์“ฐ์ž„ (์‡ผํ•‘๋ชฐ ๋“ฑ) ํ์‡„์  ํŠน์ง• 3๋…„ ์ „์— ์• ํ”Œ๋กœ๊ทธ์ธ ์ƒ๊น€ → ์•ฑ ๋งŒ๋“ค ๋•Œ ๋ฌด์กฐ๊ฑด ์• ํ”Œ๋กœ๊ทธ์ธ ๋„ฃ์–ด์•ผ ํ•จ. ์•ฑ์—์„œ ๋ฌด์กฐ๊ฑด ํƒˆํ‡ด๊ธฐ๋Šฅ ๋„ฃ์–ด์•ผ ํ•จ ์—…๋ฐ์ดํŠธ ํ˜„์žฌ os 90ํผ์„ผํŠธ ์‚ฌ์šฉ ๋ ˆ์ด์•„์›ƒ ๋Œ€์‘ ์•ˆํ•˜๋ฉด ์งœ๋ถ€๋จ. Xcode project ํ•˜๋‚˜๊ฐ€ ์•ฑ ํ•˜๋‚˜๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋จ. application์„น์…˜์— ์žˆ๋Š” 8๊ฐ€์ง€๋Š” ๋ชจ๋‘ ์ฒซ๋ฒˆ์งธ ๋น„์–ด์žˆ๋Š” App ํ…œํ”Œ๋ฆฟ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ bundle identifier ๋‚˜์ค‘์— ๋ฐ”๊พธ๊ธฐ ํž˜๋“ ๋‹ˆ ์ฒ˜์Œ์— ์ž˜ ๋งŒ๋“ค์–ด์•ผํ•จ. Team ์€ ์•ฑ์Šคํ† ์–ด ์ถœ์‹œํ–ˆ์„ ๋•Œ ๋‚˜์˜ค๋Š” ์ด๋ฆ„์ธ๋ฐ ์‹ค๋ช…์•„๋‹ˆ๋ฉด ํšŒ์‚ฌ๋ช…์œผ๋กœ๋งŒ ๊ฐ€๋Šฅ ํ”„๋กœ์ ํŠธ์™€ ํƒ€๊ฒŸ project์—์„œ ์„ค์ •ํ•˜๋ฉด target์— ์ €์ ˆ๋กœ ๋ฐ˜์˜๋˜๊ธดํ•˜๋Š”๋ฐ (์ตœ์†Œ ๋ฒ„์ „ ๊ฐ™์€๊ฒƒ)์–ด์ฐจํ”ผ ๋‚˜์ค‘์— target์—์„œ ๋”ฐ๋กœ ๋‹ค ์„ค์ •ํ•ด ์ค„ ๊ฒƒ ํƒ€๊ฒŸ ๋ˆ„๋ฅด๋ฉด .. 2023. 7. 20.
์šด์˜์ฒด์ œ ๊ฐœ์š” 1. ์šด์˜์ฒด์ œ ๊ฐœ์š” ๊ฐœ์ธ์šฉ ์ปดํ“จํ„ฐ : ์œˆ๋„์šฐ, ๋งฅ OS ๋Œ€ํ˜• ์ปดํ“จํ„ฐ or ์„œ๋ฒ„์šฉ : ์œ ๋‹‰์Šค, ๋ฆฌ๋ˆ…์Šค ์Šค๋งˆํŠธํฐ,ํƒœ๋ธ”๋ฆฟ : ์•ˆ๋“œ๋กœ์ด๋“œ, iOS ๋„ค๋น„๊ฒŒ์ด์…˜, ์Šค๋งˆํŠธ์›Œ์น˜, ๋ƒ‰์žฅ๊ณ , ์„ธํƒ๊ธฐ : ์ž„๋ฒ ๋””๋“œ ์šด์˜์ฒด์ œ ์ปดํ“จํ„ฐ๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ์—†์–ด๋„ ๋™์ž‘ํ•˜์ง€๋งŒ ์šด์˜์ฒด์ œ๊ฐ€ ์—†์œผ๋ฉด ์ฒ˜์Œ ์„ค๊ณ„ํ•œ ๊ทธ๋Œ€๋กœ๋งŒ ๋™์ž‘ํ•˜๊ณ  ๋‹ค๋ฅธ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ๋ถˆ๊ฐ€ ex. ์œ ์„ ์ „ํ™”๊ธฐ - ํ†ตํ™”๊ธฐ๋Šฅ๋งŒ ์žˆ๊ณ  ๋ณ„๋‹ค๋ฅธ ๊ธฐ๋Šฅ X (์šด์˜์ฒด์ œ X) ์Šค๋งˆํŠธํฐ - ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ถ”๊ฐ€ํ•ด ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ (์šด์˜์ฒด์ œ O) ์šด์˜์ฒด์ œ๊ฐ€ ํ•˜๋Š” ์ผ 1. ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ ์ธํ„ฐ๋„ท ๋ธŒ๋ผ์šฐ์ € + ๋…ธ๋ž˜ ๋“ฃ๊ธฐ + ๊ฒŒ์ž„ ํ•˜๊ธฐ → ์ „๋ถ€ ๋™์‹œ ์‹คํ–‰ ๊ฒŒ์ž„์„ ํ•˜๊ณ  ์žˆ์œผ๋ฉด ํ‚ค๋ณด๋“œ์™€ ๋งˆ์šฐ์Šค๋Š” ๊ฒŒ์ž„์—๋งŒ ๋ฐ˜์‘ & ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰ ๋งŒ์•ฝ ์šด์˜์ฒด์ œ๊ฐ€ ๊ด€๋ฆฌ X → ๋ธŒ๋ผ์šฐ์ €๊ฐ€ CPU๋ฅผ ๋…์ฐจ์ง€ํ•ด์„œ ๊ฒŒ์ž„ ์‹คํ–‰ ๋ถˆ๊ฐ€ .. 2023. 5. 29.
RxSwift 4์‹œ๊ฐ„๋งŒ์— ๋๋‚ด๊ธฐ ์‹œ์ฆŒ 2 (1) - RxSwift๊ฐ€ ์ƒ๊ฒจ๋‚˜๊ฒŒ ๋œ ๊ณผ์ • RxSwift 4์‹œ๊ฐ„๋งŒ์— ๋๋‚ด๊ธฐ ์‹œ์ฆŒ 2 ์ •๋ฆฌ (~ 38๋ถ„ 30์ดˆ) ๐Ÿ“’ Notion์—์„œ ๋ณด๊ธฐ 2023. 5. 11.
[Xcode] File not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์˜ค๋ž˜์ „์— ๊ฐœ๋ฐœํ–ˆ๋˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋‹ˆ ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์™”๋‹ค. File not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a FSCalendar ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ƒ๊ธด ์˜ค๋ฅ˜์˜€๋Š”๋ฐ ์Šคํƒ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์˜ ๋‹ต๋ณ€์— ์žˆ์—ˆ๋˜ ์•„๋ž˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐธ๊ณ ํ•˜์—ฌ ํ•ด๊ฒฐํ•˜์˜€๋‹ค. ์•„๋ž˜ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด Pods์˜ FSCalendar์˜ minimun deployments ๋ฅผ 8.0์—์„œ 11.0์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ์—ˆ๋”๋‹ˆ ํ•ด๊ฒฐ ๋˜์—ˆ๋‹ค. 11.0์œผ๋กœ ๋ฐ”๊พธ๊ณ  ๋‚˜๋‹ˆ ์„ ํƒ ๊ฐ€๋Šฅํ•œ ๋ฒ„์ „ ์ค‘์— 8.0์ด ์•„์˜ˆ ์‚ฌ๋ผ์กŒ๋‹ค. XCode์—์„œ ์ง€์› ๊ฐ€๋Šฅํ•œ ์ตœ์†Œ OS version์ด 11.0์œผ๋กœ ๋ฐ”๋€Œ์–ด์„œ ์ƒ๊ธด .. 2023. 4. 29.
[iOS] SnapKit๊ณผ Then ์‚ฌ์šฉํ•˜๊ธฐ iOS์—์„œ ์ฝ”๋“œ๋กœ ๋ทฐ ์งค ๋•Œ ์ƒ์‚ฐ์„ฑ์„ ํฌ๊ฒŒ ๋†’์—ฌ ์ฃผ์–ด ๋งŽ์ด ์“ฐ์ด๊ณ  ์žˆ๋Š” SnapKit๊ณผ Then ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ“• SnapKit SnapKit๋Š” iOS์™€ OS X ๋ชจ๋‘์—์„œ ์˜คํ†  ๋ ˆ์ด์•„์›ƒ์„ ์‰ฝ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•œ DSL์ž…๋‹ˆ๋‹ค. DSL: ํŠน์ •ํ•œ ๋„๋ฉ”์ธ์— ํŠนํ™”๋œ ์–ธ์–ด. Requirements iOS 10.0+ / Mac OS X 10.12+ / tvOS 10.0+ Xcode 10.0+ Swift 4.0+ SnapKit ์‚ฌ์šฉ๋ฒ• SnapKit ์‚ฌ์šฉํ•˜๊ธฐ ์ „ labelTimer.translatesAutoresizingMaskIntoConstraints = false NSLayoutConstraint.activate([ lblTimer.widthAnchor.constraint(equalTo: view.w.. 2023. 3. 29.