[์ฝ”๋“œ๋ฒ ์ด์Šค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

[Xcode] ์ฝ”๋“œ๋ฒ ์ด์ŠคUI_์Šคํ† ๋ฆฌ๋ณด๋“œ ์‚ญ์ œ

1. Main ์Šคํ† ๋ฆฌ๋ณด๋“œ ํŒŒ์ผ ์‚ญ์ œ→ Main ์Šคํ† ๋ฆฌ๋ณด๋“œ๋ฅผ ์‚ญ์ œํ•˜๊ณ  Move to Trash   2. InfoํŒŒ์ผ์—์„œ ์—ฐ๊ฒฐ ํ•ด์ œ๊ธฐ์กด์— ์Šคํ† ๋ฆฌ๋ณด๋“œ์™€ ์—ฐ๊ฒฐ๋œ ๋ฌด์–ธ๊ฐ€๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ด ์—ฐ๊ฒฐ๋“ค๋„ ๋Š์–ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. → Info ํŒŒ์ผ์— ๋“ค์–ด๊ฐ€์„œ Stroyboard Name ํ•ญ๋ชฉ ์‚ญ์ œ    3. Targets์—์„œ UIKit Main Stroyboard ํŒŒ์ผ ์‚ญ์ œ   4. ๋งจ ์ฒ˜์Œ ์•ฑ์—์„œ ์‹œ์ž‘ํ•  ๋ทฐ ์„ค์ •์ด์ œ ์•ฑ์˜ ์‹œ์ž‘์ ์„ ์Šคํ† ๋ฆฌ๋ณด๋“œ๊ฐ€ ์•„๋‹Œ ์ฝ”๋“œ๋กœ ์ง€์ •ํ•ด์ค€๋‹ค. UIWindow๋„ UIView๋ฅผ ์ƒ์†๋ฐ›๊ณ  ์žˆ๋Š” ํด๋ž˜์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ทฐ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.     // ์•ฑ์„ ์‹œ์ž‘ํ• ๋•Œ ์„ธํŒ…ํ•ด์ค„ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ณณ. func scene(_ scene: UIScene, willConnectTo session: UISceneSession..

๐ŸŽ iOS/Xcode 2024. 6. 23. 18:53

[ iOS ์•ฑ๊ฐœ๋ฐœ ์ž…๋ฌธ 1์ฃผ์ฐจ ] Xcode ๋นŒ๋“œ - ์•ฑ ์ƒ๋ช…์ฃผ๊ธฐ(App Life Cycle) / AppDelegate & SceneDelegate

์ปดํŒŒ์ผ(Compile) & ๋นŒ๋“œ(Build)์ปดํŒŒ์ผ :๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•œ High Level์–ธ์–ด์ธ Swift ์ฝ”๋“œ๋ฅผ ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •๋นŒ๋“œ : ์†Œ์Šค ์ฝ”๋“œ ํŒŒ์ผ์„ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์‚ฐ์ถœ๋ฌผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •  UIKit ์•ฑ ์ƒ๋ช…์ฃผ๊ธฐ(App Life Cycle)์•ฑ์„ ์‹œ์ž‘ํ•˜๊ณ  ์ข…๋ฃŒ๋˜๊ธฐ ์ „๊นŒ์ง€์˜ ์—ฌ๋Ÿฌ ์ƒํƒœ๋“คScene StateUnattache(= Not Running)์•ฑ์„ ์‹คํ–‰ ์ค‘์ด์ง€ ์•Š์€ ์ƒํƒœUI๋ฅผ ๋‹ด๋‹นํ•˜๋Š” Scene์ด ์•„์ง ์•ฑ์— ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์€ ์ƒํƒœ์•ฑ์— UI๊ฐ€ ๋ณด์ด์ง€ ์•Š๋Š” ์ƒํƒœ   Foreground InactiveScene์ด ์•ฑ์— ์—ฐ๊ฒฐ๋˜์–ด UI๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ์ง€๋งŒ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์—†๋Š” ์ƒํƒœ์•ฑ์„ ์™„์ „ํžˆ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์ด์ „ ๋‹จ๊ณ„์˜ˆ) ์‹œ์Šคํ…œ์— ์•Œ๋ฆผ ์˜ค๊ฑฐ๋‚˜ ์ œ์–ด์„ผํ„ฐ๋ฅผ ๋‚ด๋ฆฌ๊ฑฐ๋‚˜..

๐ŸŽ iOS/Xcode 2024. 6. 19. 11:52

[Xcode] Stack View

๐Ÿ’ฌ๊ธฐ์ดˆ ์•ฑ ๋งŒ๋“ค๊ธฐ ์ธ๊ฐ•์„ ๋ณด๋‹ค ๋ณด๋‹ˆ Stack View๋ฅผ ๋นˆ๋ฒˆํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ธ๊ฐ•์„ ๋ณด๋ฉด์„œ ๋”ฐ๋ผ ํ•˜๊ธฐ๋Š” ํ•˜์ง€๋งŒ์ •ํ™•ํ•˜๊ฒŒ ์–ด๋–ค ๊ธฐ๋Šฅ์„ ํ•˜๋Š”์ง€ ์ด์ฐธ์—์ œ๋Œ€๋กœ ์•Œ๊ณ  ๊ฐ€๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„ ์ •๋ฆฌํ•ด๋ณธ๋‹ค.   Stack View๋Š” ์˜คํ† ๋ ˆ์ด์•„์›ƒ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ฒŒํ•ด์ค€๋‹ค.Vertical Stack View : View๋“ค์„ ์„ธ๋กœ ๋ฐฉํ–ฅ์œผ๋กœ ์ผ์ • ๊ฐ„๊ฒฉ์œผ๋กœ ๋ฐฐ์น˜Horizonal Stck View : View๋“ค์„๊ฐ€๋กœ ๋ฐฉํ–ฅ์œผ๋กœ ์ผ์ • ๊ฐ„๊ฒฉ์œผ๋กœ ๋ฐฐ์น˜  Stack View์˜ ์†์„ฑAxis : ๊ฐ€๋กœ / ์„ธ๋กœ ๊ฒฐ์ •Alignment : ์œ„์น˜ ์ •๋ ฌ- Fill : ๋„ˆ๋น„ ์–‘์ชฝ์„ ๋Š˜๋ ค์„œ ์ฑ„์šด๋‹ค.- Leading(Top) : ์™ผ์ชฝ ์ •๋ ฌ- Trailing(Bottom) : ์˜ค๋ฅธ์ชฝ ์ •๋ ฌ- Center : ๊ฐ€์šด๋ฐ ์ •๋ ฌDistribution : ..

๐ŸŽ iOS/Xcode 2024. 5. 24. 22:46

ํŽ˜์ด์ง•