components์™€ split ๋ฉ”์„œ๋“œ ๋น„๊ต / ๋ฌธ์ž์—ด์„ ํŠน์ • ๋ฌธ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค ๋ณด๋ฉด ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์„œ๋“œ๋“ค์ด์ง€๋งŒ๋น„์Šทํ•œ ๊ธฐ๋Šฅ ๋•Œ๋ฌธ์ธ์ง€ ๋งค๋ฒˆ ํ—ท๊ฐˆ๋ฆฌ๊ณค ํ•œ๋‹ค. ์ด์ฐธ์— ์ œ๋Œ€๋กœ ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.   ๊ณตํ†ต์ components(separatedBy:) ๋ฉ”์„œ๋“œ์™€ split ๋ฉ”์„œ๋“œ๋Š” ๋ฌธ์ž์—ด์„ ํŠน์ • ๊ตฌ๋ถ„์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.     components(separatedBy:) Swift์˜ String ํƒ€์ž…์— ์ •์˜๋œ ๋ฉ”์„œ๋“œ ๊ตฌ๋ถ„์ž ํƒ€์ž…: ๋‹จ์ผ ๋ฌธ์ž, ๋ฌธ์ž์—ด(String) ๋˜๋Š” ๋ฌธ์ž์—ด ๋ฐฐ์—ด([String])let text = "one,two;three four"let componentsResult = text.components(separatedBy: [",", ";", " "])print(componentsResult) // ["one", "two", "..

๐ŸŽ iOS/Swift 2024. 6. 27. 01:44

[์ฝ”๋“œ๋ฒ ์ด์ŠคUI] ์นด์šดํ„ฐ ์•ฑ ๊ฐœ๋ฐœ ๊ฐœ์ธ ๊ณผ์ œ, inset๊ณผ offset

์นด์šดํ„ฐ ์•ฑ ์š”๊ตฌ ์‚ฌํ•ญ    ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜1  1. ๊ฐ์†Œ ๋ฒ„ํŠผ์˜ ์œ„์น˜๊ฐ€ ์ œ๋Œ€๋กœ ์žกํžˆ์ง€ ์•Š์Œ.์•„๋ž˜๋Š” ์‹œ๋„ํ•ด๋ดค๋˜ ํ…Œ์ŠคํŠธ.  →.offset(-32) ๋กœ ์ˆ˜์ •.   2. ์ˆซ์ž ๋„์šฐ๋Š” ๋ผ๋ฒจ์ด ๋ณด์ด์ง€ ์•Š์Œ. → ๋„์›Œ์กŒ์œผ๋‚˜ ์ˆซ์ž ์ž…๋ ฅ์ด ๋˜์–ด ์žˆ์ง€ ์•Š์•„์„œ ์ ์šฉ์ด ๋˜์ง€ ์•Š์€ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์˜€์Œ.   ๋ฐœ๊ฒฌํ•œ ์˜ค๋ฅ˜2์ดˆ๊ธฐํ™”์˜ ์œ„์น˜๊ฐ€ ์ œ๋Œ€๋กœ ์žกํžˆ์ง€ ์•Š์Œ  1. centerX์˜ ์œ„์น˜ ์„ค์ • ์•ˆ ๋ผ์—ˆ๋˜๊ฑฐ๋ผ ์ถ”๊ฐ€ํ•ด์„œ ํ•ด๊ฒฐ.   2. .inset(-60)์˜ ์œ„์น˜ ์„ค์ •์ด ์ž˜๋ชป ๋จ  ์ตœ์ข… ์ฝ”๋“œimport UIKitimport SnapKitclass ViewController: UIViewController { let numLabel = UILabel() var number: Int = 0 let minusButton = U..

๐ŸŽ iOS/Xcode 2024. 6. 26. 13:47

[ Swift ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ] ํด๋กœ์ €(Closure)

๐Ÿ”Ž  1 . ํด๋กœ์ €(Closure)ํด๋กœ์ €์™€ ํ•จ์ˆ˜์˜ ๊ธฐ๋Šฅ์€ ๋™์ผ ํ•˜๋‹ค. ํด๋กœ์ €๋Š” ์ด๋ฆ„์ด ์—†๋Š” ํ•จ์ˆ˜๋กœ ํ•จ์ˆ˜๋ณด๋‹ค ์ข€ ๋” ํฐ ๊ฐœ๋…์ด๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.  ์Šค์œ„ํ”„ํŠธ๋Š” ์ผ๊ธ‰ ๊ฐ์ฒด๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค. (ํ”„๋กœํ† ์ฝœ๋„ ์ผ๊ธ‰๊ฐ์ฒด)ํ•จ์ˆ˜์™€ ํ”„๋กœํ† ์ฝœ๋„ ํƒ€์ž…์œผ๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค. → ํ•จ์ˆ˜๋„ ๋ณ€์ˆ˜์— ํ• ๋‹น ๊ฐ€๋Šฅ→ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ํ•จ์ˆ˜๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌ ๊ฐ€๋Šฅ→ ํ•จ์ˆ˜์—์„œ ํ•จ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ ๊ฐ€๋Šฅ ํ•จ์ˆ˜๋Š” ๋‹ค๋ฅธ ์ฝ”๋“œ์—์„œ ํ˜ธ์ถœํ•  ๋•Œ ํ•จ์ˆ˜๋ช…์œผ๋กœ ํ˜ธ์ถœํ•œ๋‹ค. ํด๋กœ์ €๋Š” ์ด๋ฆ„์ด ์—†๋Š” ํ•จ์ˆ˜๋กœ ์ด๋ฆ„์ด ์—†์ด๋„ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. -> ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ํŒŒ๋ผ๋ฏธํ„ฐ์— ํด๋กœ์ € ํ˜•ํƒœ๋กœ ์ „๋‹ฌํ•˜๊ธฐ ๋•Œ๋ฌธ-> ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ํด๋กœ์ €๋ฅผ ์ •์˜ํ•˜๋ฉด์„œ ๋ฐ”๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•จ์ˆ˜๋ช…์ด ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค!!!    ๐Ÿ”Ž  2. ํด๋กœ์ € ๊ตฌ์กฐ ๋ฐ ์ถ•์•ฝ ๐ŸŒŸ ํ•จ์ˆ˜ ํ˜•ํƒœ์—์„œ ํด๋กœ์ € ๋งŒ๋“ค๊ธฐ ๐ŸŒŸ  ..

๐ŸŽ iOS/Swift 2024. 6. 25. 22:14

[ Swift ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ] ํ”„๋กœํ† ์ฝœ (Protocol)

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

๐ŸŽ iOS/Swift 2024. 6. 25. 08:04