iOS Auto Layout

์œ ์˜ˆ๋ฆฌยท2022๋…„ 3์›” 21์ผ
1

UMC

๋ชฉ๋ก ๋ณด๊ธฐ
2/7

๐Ÿ”…Keyword๐Ÿ”…

1๏ธโƒฃ Auto Layout

โ€ผ๏ธ์™ธ๋ถ€๋ณ€๊ฒฝ๊ณผ ๋‚ด๋ถ€๋ณ€๊ฒฝ์„ ์œ„ํ•ด ์‚ฌ์šฉ

๊ฐ•์˜ ์š”์•ฝ๋‚ด์šฉ
- ๋ทฐ์˜ ํฌ๊ธฐ์™€ ์œ„์น˜๋ฅผ ์„ค์ •ํ•˜๋Š” ๋„๊ตฌ
- **Constraint(์ œ์•ฝ์กฐ๊ฑด)**์„ ํ†ตํ•ด์„œ ํฌ๊ธฐ์™€ ์œ„์น˜๋ฅผ ๊ฒฐ์ •
- ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์™ธ๋ถ€์  ํ˜น์€ ๋‚ด๋ถ€์  ์š”์ธ์— ์˜ํ•œ ํฌ๊ธฐ ๋ณ€ํ™”์— ๋™์ ์œผ๋กœ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋‹ค.
  - ex) ์„ธ๋กœ๋ชจ๋“œ->๊ฐ€๋กœ๋ชจ๋“œ (ํŠน์ • UI๊ฐ€ ์‚ฌ๋ผ์ง€๊ฑฐ๋‚˜ ์ค„์–ด๋“œ๋Š” ์ƒํ™ฉ-๋Œ“๊ธ€, ๋Œ€๋Œ“๊ธ€ UI)

์ œ์•ฝ ๊ธฐ๋ฐ˜์„ค๊ณ„ ๋ฐฉ์‹์„ ํ†ตํ•ด ๋‚ด๋ถ€ ๋ฐ ์™ธ๋ถ€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋™์ ์œผ๋กœ ์‘๋‹ตํ•˜๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค.

1. ์™ธ๋ถ€๋ณ€๊ฒฝ์ด๋ž€?

  • *์Šˆํผ๋ทฐ์˜ ํฌ๊ธฐ๋‚˜ ๋ชจ์–‘์ด ๋ณ€๊ฒฝ๋˜๋ฉด ์™ธ๋ถ€๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•œ๋‹ค.

    • *swift์—๋Š” ๋ทฐ ๊ณ„์ธต์ด ์กด์žฌํ•œ๋‹ค. ๋ทฐ๋Š” ์ž์‹ ์˜ ์ฝ˜ํ…์ธ ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ๊ณผ ๋”๋ถˆ์–ด, ๋‹ค๋ฅธ ๋ทฐ๋ฅผ ์œ„ํ•œ ์ปจํ…Œ์ด๋„ˆ๋กœ์จ์˜ ์—ญํ• ๋„ ํ•œ๋‹ค. ํ•˜๋‚˜์˜ ๋ทฐ๊ฐ€ ๋‹ค๋ฅธ ๋ทฐ๋ฅผ ํฌํ•จํ•  ๋•Œ, ๋‘ ๋ทฐ ์‚ฌ์ด์—๋Š” ๋ถ€๋ชจ(Parent View)-์ž์‹(Child View) ๊ด€๊ณ„๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. ์ด ๊ด€๊ณ„์—์„œ ์ž์‹๋ทฐ๋Š” ์„œ๋ธŒ๋ทฐ(subview), ๋ถ€๋ชจ๋ทฐ๋Š” ์Šˆํผ๋ทฐ(superview)๋กœ ๋ถˆ๋ฆฐ๋‹ค.
  • ๋ณ€๊ฒฝ์ด ์ผ์–ด๋‚  ๋•Œ๋งˆ๋‹ค ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ณต๊ฐ„์„ ์ตœ๋Œ€ํ•œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ทฐ ๊ณ„์ธต ๋ ˆ์ด์•„์›ƒ์„ ์—…๋ฐ์ดํŠธ ํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค.

    • iPad์—์„œ Split View๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, Split View ์‚ฌ์šฉ์„ ์ข…๋ฃŒํ•  ๋•Œ
    • ๊ฐ€๋กœ๋ชจ๋“œ(landscape mode) / ์„ธ๋กœ๋ชจ๋“œ (๊ธฐ๊ธฐ์˜ ํšŒ์ „)
    • ํ™œ์„ฑํ™” ์ฝœ (Active call) ๋ฐ ์˜ค๋””์˜ค ๋…น์Œ ๋ฐ”๊ฐ€ ๋‚˜ํƒ€๋‚˜๊ฑฐ๋‚˜ ์‚ฌ๋ผ์ง€๋Š” ๊ฒฝ์šฐ
    • ๋‹ค๋ฅธ ํฌ๊ธฐ์˜ ํด๋ž˜์Šค๋ฅผ ์ง€์›ํ•˜๊ธธ ์›ํ•˜๋Š” ๊ฒฝ์šฐ
    • ๋‹ค๋ฅธ ํฌ๊ธฐ์˜ ์Šคํฌ๋ฆฐ์„ ์ง€์›ํ•˜๊ธธ ์›ํ•˜๋Š” ๊ฒฝ์šฐ
  • ์œ„ ๊ฐ™์€ ๊ฒฝ์šฐ์—์„œ๋Š” ์•ฑ์œผ๋กœ ๋ถ€ํ„ฐ ๋™์ ์ธ ์‘๋‹ต์„ ์š”๊ตฌํ•œ๋‹ค. ์ ์‘ํ˜• ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค๋ฉด ๋‹ค์–‘ํ•œ ๋””๋ฐ”์ด์Šค์—์„œ ์•ฑ์„ ๋™์ผํ•˜๊ฒŒ ์‹คํ–‰ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ Auto Layout์€ iPad์˜ Split View์™€ Slide Over๋ฅผ ์ง€์›ํ•˜๋Š” ํ•ต์‹ฌ ์š”์†Œ์ด๋‹ค.

2. ๋‚ด๋ถ€๋ณ€๊ฒฝ์ด๋ž€?

  • ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ทฐ์˜ ํฌ๊ธฐ ๋˜๋Š” ์„ค์ •์ด ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

    • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํ‘œ์‹œ(display)ํ•˜๋Š” ์ปจํ…์ธ ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๊ฒฝ์šฐ
    • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ตญ์ œํ™”(Internationalization)๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ
    • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋™์  ํƒ€์ž…(Dynamic Type)์„ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ
  • ์•ฑ์˜ ์ปจํ…์ธ ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ, ์ƒˆ๋กœ์šด ์ปจํ…์ธ ๋Š” ์ด์ „๊ณผ ๋‹ค๋ฅธ ๋ ˆ์ด์•„์›ƒ์„ ์š”๊ตฌํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ด๋Š” ๋ณดํ†ต ์•ฑ์—์„œ text๋‚˜ ์ด๋ฏธ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ผ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‰ด์Šค์•ฑ์€ ๋‰ด์Šค ๊ธฐ์‚ฌ ๊ฐ๊ฐ์˜ ์‚ฌ์ด์ฆˆ์— ๋”ฐ๋ผ ๋ ˆ์ด์•„์›ƒ์„ ์กฐ์ •ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ๋˜ํ•œ ํฌํ†  ์ฝœ๋ผ์ฃผ๋Š” ๋‹ค์–‘ํ•œ ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ์™€ ์ข…ํšก๋น„๋ฅผ ๋‹ค๋ค„์•ผ ํ•œ๋‹ค.

  • ๊ตญ์ œํ™”๋Š”(Internationalization)๋Š” ์•ฑ์ด ๋‹ค์–‘ํ•œ ์–ธ์–ด, ์ง€์—ญ, ๋ฌธํ™”์— ์ ์‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค. ๊ตญ์ œํ™”๋œ ์•ฑ์˜ ๋ ˆ์ด์•„์›ƒ์€ ์ด๋Ÿฌํ•œ ์ฐจ์ด์ ๋“ค์„ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋ฉฐ, ์•ฑ์ด ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ์–ธ์–ด ๋ฐ ์ง€์—ญ์—์„œ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํ‘œ์‹œ๋˜์–ด์•ผ ํ•œ๋‹ค.(ํ‘œ๊ธฐ ์ˆœ์„œ...)

๐Ÿ’ญAutoLayout์€ ์™œ ํ•„์š”ํ• ๊นŒ์š”?๐Ÿ’ญ

๐Ÿ’ก๋‹ค์–‘ํ•œ ๊ธฐ๊ธฐ๊ฐ€ ์กด์žฌํ•˜๊ณ , ๊ทธ์— ๋”ฐ๋ฅธ ๊ธฐ๋Šฅ๋„ ๋‹ค์–‘ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ๊ตญ๊ฐ€๊ฐ€ ์• ํ”Œ์— ๊ธฐ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ๋™์ ์œผ๋กœ ์‘๋‹ตํ•˜๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•˜๋‹ค!

2๏ธโƒฃ Inspector ์˜์—ญ

โ€ผ๏ธํŽธ์ง‘, ์ •๋ณด์˜ ์˜์—ญ

- ํ”„๋กœ์ ํŠธ ๋„ค๋น„๊ฒŒ์ดํ„ฐ์—์„œ ์„ ํƒํ•œ ๊ฐœ์ฒด ๋˜๋Š” ์ „์ฒด ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ณด๊ณ  ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ธ์ŠคํŽ™ํ„ฐ ์˜์—ญ์„ ์—ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฉ”์ธ์ฐฝ์˜ ํˆด๋ฐ”์—์„œ ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ๋œ๋‹ค.

  • ํŠน์ • ์†์„ฑ์„ ํ‘œ์‹œํ•˜๋ ค๋ฉด ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ๋œ๋‹ค. ์„ ํƒํ•œ ํ•ญ๋ชฉ์— ๋”ฐ๋ผ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ๊ธฐ๋Šฅ์ด ๋‹ฌ๋ผ์ง„๋‹ค.

๐Ÿ’ญInspector ์˜์—ญ์—๋Š” ์–ด๋–ค ๊ฒƒ๋“ค ์žˆ๋‚˜์š”?๐Ÿ’ญ

์ธ์ŠคํŽ™ํ„ฐ ์˜์—ญ์€ ์—ฌ๋Ÿฌ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์†์„ฑ์„ ๊ด€๋ฆฌํ•˜๋Š” ์˜์—ญ์œผ๋กœ, ๊ฐ์ฒด๋งˆ๋‹ค ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ์ด ๋‹ฌ๋ผ์ง„๋‹ค.

  1. ํŒŒ์ผ ์ธ์ŠคํŽ™ํ„ฐ : ํ”„๋กœ์ ํŠธ ๋‚ด๋น„๊ฒŒ์ดํ„ฐ์—์„œ ์„ ํƒํ•œ ํŒŒ์ผ์— ๋Œ€ํ•œ ํŒŒ์ผ๋ช…๊ณผ ์ข…๋ฅ˜๋ฅผ ๋ณด์—ฌ์ฃผ๋ฉฐ, ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์Šคํ† ๋ฆฌ๋ณด๋“œ์˜ ๊ฒฝ์šฐ ํŒŒ์ผ ์ •๋ณด๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋นŒ๋“œ ๋Œ€์ƒ iOS๋ฒ„์ „ ๋“ฑ ์ธํ„ฐํŽ˜์ด์Šค ๋นŒ๋”์˜ ์„ค์ •๋„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. ํŒŒ์ผ๋ช…์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์•ฑ ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋นŒ๋“œ ๋Œ€์ƒ์˜ ๋ฒ”์œ„๋ฅผ ์กฐ์ ˆํ•  ๋•Œ์—๋„ ์‚ฌ์šฉํ•œ๋‹ค.

  2. ํžˆ์Šคํ† ๋ฆฌ ์ธ์ŠคํŽ™ํ„ฐ : ํ˜„์žฌ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ „์ฒด ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ปค๋ฐ‹ํ•œ ์‹œ๊ฐ„๊ณผ ๋‚ ์งœ, ๋‚ด์šฉ ๋“ฑ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

  3. ํ€ตํ—ฌํ”„ ์ธ์ŠคํŽ™ํ„ฐ : ์„ ํƒ๋œ ๊ฐ์ฒด์— ๋Œ€ํ•œ ๋„์›€๋ง์„ ์ œ๊ณตํ•œ๋‹ค.

  4. ์•„์ด๋ดํ‹ฐํ‹ฐ ์ธ์ŠคํŽ™ํ„ฐ : ์ธํ„ฐํŽ˜์ด์Šค ๋นŒ๋”์— ์ถ”๊ฐ€๋œ ๊ฐ์ฒด์™€ ์ด๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค ์‚ฌ์ด์˜ ์—ฐ๊ฒฐ์ด๋‚˜ ๊ฐ์ฒด์˜ ID ๋“ฑ, ๊ฐ์ฒด์˜ ๊ณ ์œ ํ•œ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์Šคํ† ๋ฆฌ๋ณด๋“œ์— ์ถ”๊ฐ€๋œ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ๋‚˜ ํ”„๋กœํ† ํƒ€์ž… ์…€์˜ ๊ฒฝ์šฐ ์ฃผ๋กœ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์ƒ์„ธ ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜๋Š”๋ฐ, ํด๋ž˜์Šค ํŒŒ์ผ์— ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ ํ›„ ์ด ํƒญ์˜ ์†์„ฑ์„ ์ด์šฉํ•˜์—ฌ ๊ฐ์ฒด์™€ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. UI ๊ฐ์ฒด๋ฅผ ์†Œ์Šค ์ฝ”๋“œ์—์„œ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•œ ์‹๋ณ„๊ฐ’์„ ์ง€์ •ํ•  ๋•Œ์—๋„ ์‚ฌ์šฉํ•œ๋‹ค.

  5. ์–ดํŠธ๋ฆฌ๋ทฐํŠธ ์ธ์ŠคํŽ™ํ„ฐ : ํ˜„์žฌ ์ธํ„ฐํŽ˜์ด์Šค ๋นŒ๋”์—์„œ ์„ ํƒ๋œ ๊ฐ์ฒด์˜ ์†์„ฑ์„ ๊ด€๋ฆฌํ•œ๋‹ค. ๊ฐ์ฒด๋“ค์€ ํŠน์„ฑ์— ๋”ฐ๋ผ ์„œ๋กœ ๋‹ค๋ฅธ ์†์„ฑ์„ ๊ฐ€์ง€๋ฏ€๋กœ ์–ด๋–ค ๊ฐ์ฒด๋ฅผ ์„ ํƒํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ ํ‘œ์‹œ๋˜๋Š” ํ•ญ๋ชฉ๋“ค์ด ๋‹ฌ๋ผ์ง„๋‹ค.

  6. ์‚ฌ์ด์ฆˆ ์ธ์ŠคํŽ™ํ„ฐ : ์„ ํƒ๋œ ๊ฐ์ฒด์˜ ์™ธํ˜•์— ๋Œ€ํ•œ ์†์„ฑ์„ ๊ด€๋ฆฌํ•œ๋‹ค. ์ฃผ๋กœ ํฌ๊ธฐ์™€ ์œ„์น˜, ๋ฐฐ์น˜ ๋ฐฉ์‹์„ ๋‹ค๋ฃฌ๋‹ค.

  7. ์ปค๋„ฅ์…˜ ์ธ์ŠคํŽ™ํ„ฐ : ์ธํ„ฐํŽ˜์ด์Šค ๋นŒ๋”์™€ ์†Œ์Šค ์ฝ”๋“œ ๊ฐ„์˜ ์—ฐ๊ฒฐ ๊ด€๊ณ„๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค. ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ ์‚ฌ์ด์˜ ํ™”๋ฉด ์ด๋™์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์„ธ๊ทธ์›จ์ด, ์Šคํ† ๋ฆฌ๋ณด๋“œ์˜ ๊ฐ์ฒด ์†์„ฑ์„ ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ์ฐธ์กฐํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” @IBOutlet, ๋ฒ„ํŠผ์ด๋‚˜ ํ…Œ์ด๋ธ” ์…€ ๋“ฑ์—์„œ ๋ฐœ์ƒํ•œ ์ด๋ฒคํŠธ๋ฅผ ํŠน์ • ํด๋ž˜์Šค์˜ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋กœ ์ „๋‹ฌํ•ด์ฃผ๋Š” @IBAction ๋“ฑ์˜ ์—ฐ๊ฒฐ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.


  1. File inspector - ์ด๋ฆ„, ์œ ํ˜•, ๊ฒฝ๋กœ ๋ฐ ํ”„๋กœ์ ํŠธ ๋‚ด ์œ„์น˜ ๋“ฑ๊ณผ ๊ฐ™์€ ํŒŒ์ผ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ณ  ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์„ ํƒํ•œ ํŒŒ์ผ์ด ์Šคํ† ๋ฆฌ๋ณด๋“œ๋ผ๋ฉด ํŒŒ์ผ ์ •๋ณด์™€ ๋”๋ถˆ์–ด ๋นŒ๋“œ ๋Œ€์ƒ iOS ๋ฒ„์ „, UI ์„ค๊ณ„์— ๋Œ€ํ•œ ์ž๋™ ๋ ˆ์ด์•„์›ƒ ์˜ต์…˜ ๋“ฑ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ํ•ญ๋ชฉ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์•ฑ ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋นŒ๋“œ ๋Œ€์ƒ ๋ฒ”์œ„๋ฅผ ์กฐ์ ˆํ•˜๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ ํ™”๋ฉด ํฌ๊ธฐ์— ๋Œ€์‘ํ•˜๋Š” ์•ฑ์„ ์ œ์ž‘ํ•  ๋•Œ, ๊ทธ๋ฆฌ๊ณ  ๊ตญ๊ฐ€๋ณ„ ์–ธ์–ด ์„ค์ •์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ๋•Œ์—๋„ ์ด ํƒญ์„ ์ด์šฉํ•˜์—ฌ ํ•„์š”ํ•œ ๋‚ด์šฉ์„ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. Quick Help inspector - ๊ฐ„๊ฒฐํ•œ ์„ค๋ช…, ์„ ์–ธ๋œ ์œ„์น˜ ๋ฐ ๋ฐฉ๋ฒ•, ๋ฒ”์œ„, ์‚ฌ์šฉํ•˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜, ํ”Œ๋žซํผ ๋ฐ ์•„ํ‚คํ…์ณ ์‚ฌ์šฉ์„ฑ์„ ํฌํ•จํ•˜์—ฌ ๊ธฐํ˜ธ์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. Identity inspector - ํด๋ž˜์Šค ์ด๋ฆ„, ์•ก์„ธ์Šค ๊ฐ€๋Šฅ์„ฑ ์ •๋ณด, ๋Ÿฐํƒ€์ž„ ์†์„ฑ ๋ฐ ๋ ˆ์ด๋ธ”๊ณผ ๊ฐ™์€ ๊ฐœ์ฒด์— ๋Œ€ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ณ  ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ์Šคํ† ๋ฆฌ๋ณด๋“œ์— ์ถ”๊ฐ€๋œ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๋‚˜ ํ”„๋กœํ† ํƒ€์ž… ์…€์€ ์ฃผ๋กœ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์ƒ์„ธ ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜๋Š”๋ฐ, ์ด๋ฅผ ์œ„ํ•ด ํด๋ž˜์Šค ํŒŒ์ผ์„ ์ž‘์„ฑํ•œ ํ›„ ์ด ํƒญ์˜ ์†์„ฑ์„ ์ด์šฉํ•˜์—ฌ ํ™”๋ฉด์ƒ์˜ ๊ฐ์ฒด์™€ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. UI ๊ฐ์ฒด๋ฅผ ์†Œ์Šค ์ฝ”๋“œ์—์„œ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•œ ์‹๋ณ„๊ฐ’์„ ์ •์˜ํ•  ๋•Œ์—๋„ ์•„์ด๋ดํ‹ฐํ‹ฐ ์ธ์ŠคํŽ™ํ„ฐ ํƒญ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  4. Attributes inspector - ์„ ํƒ๋œ ์ธํ„ฐํŽ˜์ด์Šค ๊ฐœ์ฒด์˜ ์†์„ฑ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  5. Size inspector - ์„ ํƒ๋œ ์ธํ„ฐํŽ˜์ด์Šค ๊ฐœ์ฒด์˜ ์™ธํ˜• ์†์„ฑ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐํฌ๊ธฐ ๋ฐ ์œ„์น˜, ๋ณด๊ธฐ ์ œ์•ฝ์กฐ๊ฑด, ์ตœ์†Œ ๋ฐ ์ตœ๋Œ€ ํฌ๊ธฐ, ์ž๋™ ํฌ๊ธฐ ์กฐ์ • ๊ทœ์น™์„ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  6. Connections inspector - ์ธํ„ฐํŽ˜์ด์Šค ๋นŒ๋”์™€ ์†Œ์Šค ์ฝ”๋“œ ๊ฐ„์˜ ์—ฐ๊ฒฐ ๊ด€๊ณ„๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์Šคํ† ๋ฆฌ๋ณด๋“œ ํŒŒ์ผ์„ ํ†ตํ•ด ์„ค๊ณ„ํ•œ ํ™”๋ฉด ์ธํ„ฐํŽ˜์ด์Šค๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ ์œผ๋กœ ๋™์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ์†Œ์Šค ์ฝ”๋“œ์™€ ์—ฐ๊ฒฐ๋˜์–ด์•ผ ํ•˜๋Š”๋ฐ, ์ด ๋ชจ๋“  ์—ฐ๊ฒฐ ๊ด€๊ณ„๋ฅผ ๋ชจ๋‘ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ปค๋„ฅ์…˜ ์ธ์ŠคํŽ™ํ„ฐ ํƒญ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค๋„ฅ์…˜ ์ธ์ŠคํŽ™ํ„ฐ ํƒญ์˜ ๋ชฉ๋ก์—์„œ ์ขŒ์ธก์€ ์ธํ„ฐํŽ˜์ด์Šค ๋นŒ๋” ์ƒ์˜ ๊ฐ์ฒด๋ฅผ, ์šฐ์ธก์€ ์†Œ์Šค ์ฝ”๋“œ์ƒ์˜ ๊ฐ์ฒด๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ขŒ์šฐ์ธก์ด ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค๋ฉด ์ธํ„ฐํŽ˜์ด์Šค ๋นŒ๋” ์ƒ์˜ ๊ฐ์ฒด์™€ ์†Œ์Šค ์ฝ”๋“œ ์ƒ์˜ ๊ฐ์ฒด๋“ค๋„ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  7. Bindings inspector - ๋ฐ”์ธ๋”ฉ์„ ๋ณด๊ณ  ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค.
  8. View Effects inspector - ์—๋‹ˆ๋ฉ”์ด์…˜, ์•ŒํŒŒ ์ฑ„๋„, ์ „ํ™˜ ๋ฐ ๊ธฐํƒ€ ์‹œ๊ฐ์  ํŠน์„ฑ์— ๋Œ€ํ•œ ์„ค์ •์„ ๋ณด๊ณ  ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค.
  9. SKNode inspectorr - SpriteKit ๋…ธ๋“œ์˜ ์†์„ฑ์„ ๋ณด๊ณ  ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค.
  10. Source Control inspector - ์„ ํƒํ•œ ์ €์žฅ์†Œ ๋˜๋Š” ์ปค๋ฐ‹์˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
    Xcode Help

3๏ธโƒฃ Constraint

โ€ผ๏ธ์ œ์•ฝ์กฐ๊ฑด!

์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ 3๊ฐ€์ง€์ด๋‹ค.
1. Frame ๊ธฐ๋ฐ˜์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹(Frame-Based Layout)
2. Autoresizing masks
3. Auto Layout

  • Constraint์€ Auto Layout์—์„œ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•œ ์กฐ๊ฑด์ด๋‹ค.
  • ์ œ์•ฝ์กฐ๊ฑด์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‘ ๋ทฐ์˜ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.
  • ์ œ์•ฝ์กฐ๊ฑด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ ๋ทฐ์˜ ํฌ๊ธฐ์™€ ์œ„์น˜๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ , ๋‚ด๋ถ€ ๋ฐ ์™ธ๋ถ€ ๋ณ€๊ฒฝ์— ๋™์ ์œผ๋กœ ๋ฐ˜์‘ํ•˜๋Š” ๋ ˆ์ด์•„์›ƒ์„ ์ƒ์„ฑํ•œ๋‹ค.

๐Ÿ’ญConstraint์˜ ์š”์†Œ๋Š” ์–ด๋–ค ๊ฒƒ๋“ค์ด ์žˆ๋‚˜์š”?๐Ÿ’ญ

  • ํฌ๊ฒŒ size attribute์™€ location attribute๋กœ ๋ถ„๋ฅ˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • size attribute์™€ location attribute๋Š” ๊ทœ์น™์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

    • ํฌ๊ธฐ ์†์„ฑ์„ ์œ„์น˜ ์†์„ฑ์œผ๋กœ ์ œํ•œํ•  ์ˆ˜ ์—†๋‹ค.
    • ์œ„์น˜ ์†์„ฑ์—๋Š” ์ƒ์ˆ˜ ๊ฐ’์„ ํ• ๋‹นํ•  ์ˆ˜ ์—†๋‹ค.
    • ์œ„์น˜ ์†์„ฑ์—๋Š” 1.0 ์ด์™ธ์˜ ๊ฐ’์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.
    • ์œ„์น˜ ์†์„ฑ์˜ ๊ฒฝ์šฐ ์ˆ˜์ง ์†์„ฑ์„ ์ˆ˜ํ‰ ์†์„ฑ์œผ๋กœ ์ œํ•œํ•  ์ˆ˜ ์—†๋‹ค.
    • ์œ„์น˜ ์†์„ฑ์˜ ๊ฒฝ์šฐ ์„ ํ–‰ ๋˜๋Š” ํ›„ํ–‰ ์†์„ฑ์„ ์™ผ์ชฝ ๋˜๋Š” ์˜ค๋ฅธ์ชฝ ์†์„ฑ์œผ๋กœ ์ œํ•œํ•  ์ˆ˜ ์—†๋‹ค.

  1. size attributes
  • Width
  • Height
  1. location attributes
  • Top
  • Bottom
  • Center X
  • Center Y
  • Left or Leading
  • Right or Trailing
    • Leading๊ณผ Trailing์€ ์™ผ์ชฝ/์˜ค๋ฅธ์ชฝ ๊ฐœ๋…์ด ์•„๋‹ˆ๋‹ค
    • Leading : Text๊ฐ€ ์‹œ์ž‘๋˜๋Š” ์ง€์ 
    • Trailing : Text๊ฐ€ ๋๋‚˜๋Š” ์ง€์ 
  • Baseline

๐Ÿ’ญConstraint์˜ ๋™์ ์ธ ํ™œ์šฉ๐Ÿ’ญ

  • Auto Layout์€ ๊ฐ€๋Šฅํ•œ ํ•ด๋‹ต์ด ํ•˜๋‚˜์ธ ๋ฐฉ์ •์‹์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜์ง€๋งŒ ์• ๋งคํ•œ ์ œ์•ฝ์กฐ๊ฑด(ambiguous)์—๋Š” ๋‘˜ ์ด์ƒ์˜ ํ•ด๋‹ต์ด ์žˆ์„์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋งŒ์กฑํ•  ์ˆ˜ ์—†๋Š” ์ œ์•ฝ(unsatisfiable)์€ ์„ฑ๋ฆฝ์ด ์•ˆ๋ฉ๋‹ˆ๋‹ค. -> ์ œ์•ฝ์กฐ๊ฑด์„ ์ž˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค!

  • ์‚ฌ์šฉํ•  ์ œ์•ฝ์กฐ๊ฑด์„ ์„ ํƒํ•˜๋Š”๋ฐ๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

  • ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ์— ์ œ์•ฝ์กฐ๊ฑด์€ ๊ฐ ๋ทฐ์˜ ํฌ๊ธฐ์™€ ์œ„์น˜๋ฅผ ๋ชจ๋‘ ์ •์˜ํ•ด์•ผํ•œ๋‹ค. -> Constraints๋ฅผ ์ด์šฉํ•ด์„œ ๋ทฐ์˜ "์œ„์น˜"์™€ "ํฌ๊ธฐ"๋ฅผ "๋™์ "์œผ๋กœ ์ง€์ •ํ•˜๋Š” ๊ฒƒ
    -> ์œ ์ถ”ํ•ด์„œ ์ž๋™์œผ๋กœ ์กฐ๊ฑด์„ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.

  1. ์ฒซ๋ฒˆ์งธ๋Š” leading๊ณผ width๋ฅผ ์ฃผ๋ฉด, trailing์€ superview์˜ ์‚ฌ์ด์ฆˆ๋‚˜ ๋‹ค๋ฅธ ์ œ์•ฝ์กฐ๊ฑด์— ์˜ํ•ด ์ž๋™์œผ๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.
  2. ๋‘๋ฒˆ์งธ๋Š” leading๊ณผ trailing์„ ์ฃผ๋ฉด, width๋Š” ์ž๋™์œผ๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.
  3. ์„ธ๋ฒˆ์งธ๋Š” leading๊ณผ center ์ •๋ ฌ์„ ์ฃผ๋ฉด, width์™€ trailing ์ž๋™์œผ๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.

โ”๊ทธ๋Ÿผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™”๋ฉด์„ ๋งŒ๋“œ๋ ค๋ฉด ์–ด๋–ค ์ œ์•ฝ์กฐ๊ฑด์„ ์ฃผ์–ด์•ผ ํ• ๊นŒ์š”?

1๏ธโƒฃ

// Vertical Constraints
Red.top = 1.0 * Superview.top + 20.0
Superview.bottom = 1.0 * Red.bottom + 20.0
Blue.top = 1.0 * Superview.top + 20.0
Superview.bottom = 1.0 * Blue.bottom + 20.0
 
// Horizontal Constraints
Red.leading = 1.0 * Superview.leading + 20.0
Blue.leading = 1.0 * Red.trailing + 8.0
Superview.trailing = 1.0 * Blue.trailing + 20.0
Red.width = 1.0 * Blue.width + 0.0

2๏ธโƒฃ

// Vertical Constraints
Red.top = 1.0 * Superview.top + 20.0
Superview.bottom = 1.0 * Red.bottom + 20.0
Red.top = 1.0 * Blue.top + 0.0
Red.bottom = 1.0 * Blue.bottom + 0.0
 
//Horizontal Constraints
Red.leading = 1.0 * Superview.leading + 20.0
Blue.leading = 1.0 * Red.trailing + 8.0
Superview.trailing = 1.0 * Blue.trailing + 20.0
Red.width = 1.0 * Blue.width + 0.0

โ”๋ญ๊ฐ€ ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์ผ๊นŒ์š”?

๋ญ๊ฐ€ ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์ผ๊นŒ ๋ณด๋‹ค๋Š” ๊ฐ๊ฐ์˜ ์žฅ๋‹จ์ ์ด ์žˆ์–ด์š”!
์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ ํ•˜๋‚˜์˜ ๋ทฐ๊ฐ€ ์ง€์›Œ์งˆ ๊ฒฝ์šฐ์—๋„ ๋‹ค๋ฅธ ๋ทฐ์— ์ง€์žฅ์ด ์—†๋‹ค๋Š” ๊ฒƒ์ด ์žฅ์ ์ด์—์š”. ์˜ˆ๋ฅผ๋“ค์–ด ๋นจ๊ฐ„ ๋ทฐ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ํŒŒ๋ž€์ƒ‰์€ ์„ธ ๊ฐ€์ง€์˜ ์ œ์•ฝ์กฐ๊ฑด์œผ๋กœ ์œ ์ง€๋˜๊ณ , ํ•˜๋‚˜์˜ ์ œ์•ฝ์กฐ๊ฑด๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด ์œ ํšจํ•œ ๋ ˆ์ด์•„์›ƒ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด์š”! ๋‘ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ ๋นจ๊ฐ„๋ทฐ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ํŒŒ๋ž€์ƒ‰ ๋ทฐ์— ํ•˜๋‚˜์˜ ์ œ์•ฝ์กฐ๊ฑด๋งŒ ๋‚จ๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์œ ํšจํ•œ ๋ ˆ์ด์•„์›ƒ์„ ๋งŒ๋“œ๋ ค๋ฉด ์ฒ˜์Œ๋ถ€ํ„ฐ ์ œ์•ฝ์กฐ๊ฑด์„ ์„ค์ •ํ•ด ์ฃผ์–ด์•ผ ํ•ด์š”!

ํ•˜์ง€๋งŒ ์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•๋„ ๋‹จ์ ์ด ์žˆ์–ด์š”. ์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์—์„œ ๋นจ๊ฐ„์ƒ‰๊ณผ ํŒŒ๋ž€์ƒ‰ ๋ทฐ์˜ ์ƒ๋‹จ๊ณผ ํ•˜๋‹จ์„ ์ •๋ ฌํ•˜๋ ค๋ฉด ๊ฐ™์€ ์ƒ์ˆ˜๊ฐ’์„ ์ ์šฉํ•ด์•ผํ•˜๊ณ , ๋งŒ์•ฝ์— ํ•˜๋‚˜์˜ ๋ทฐ์˜ ์ƒ์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•  ๊ฒฝ์šฐ์—๋Š” ๋‹ค๋ฅธ ์ƒ์ˆ˜ ๊ฐ’๋„ ๋ณ€๊ฒฝํ•ด ์ฃผ์–ด์•ผํ•ด์š”.

4๏ธโƒฃ SafeArea

โ€ผ๏ธ๋ฒ ์ ค๋ฆฌ์Šค ๋””์Šคํ”Œ๋ž˜์ด๊ฐ€ ๊ฐœ๋ฐœ๋˜๋ฉด์„œ, ์ „๋ฉด์นด๋ฉ”๋ผ, ์„ผ์„œ๋“ฑ์„ ๋ฐฐ์น˜ํ•˜๊ธฐ ์œ„ํ•œ '๋…ธ์น˜'์— ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•!

SafeArea

  • SafeArea๋Š” ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ปจํ…์ธ ๊ฐ€ ์ œ๋Œ€๋กœ ๋ณด์ผ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์—๋งŒ ๋ทฐ๋ฅผ ๋ฐฐ์น˜ํ•˜๋„๋ก ๋„์›€์„ ์ฃผ๋Š” ์˜์—ญ์ž…๋‹ˆ๋‹ค.

  • ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋„ค๋น„๊ฒŒ์ด์…˜ ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์šฐ๋ฆฌ์˜ ๋ทฐ ์œ„์— ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ”๋ฅผ ๋„์›Œ์ฃผ๋Š”๋ฐ, ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ” ๋ฐ‘์˜ ๋ถ€๋ถ„์€ ๊ฐ€๋ ค์งˆ ์ˆ˜ ์žˆ์œผ๋‹ˆ, SafeArea ๋Š” ์ด๋Ÿฐ ๋ทฐ๋“ค์„ ๋ฐ˜์˜ํ•ด์„œ ๊ฐ’์„ ๊ณ„์‚ฐํ•ด์„œ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

๐Ÿ’ญsuperview VS SafeArea๐Ÿ’ญ

  • ๋…ธ์น˜์—์„œ ์ฐจ์ด๋‚˜๋Š” ๋ชจ์Šต

  • iPhone 8 ์ƒํƒœํ‘œ์‹œ์ค„์—์„œ ์ฐจ์ด๋‚˜๋Š” ๋ชจ์Šต

๐Ÿ”…Check List๐Ÿ”…

โœ… Frame ๊ธฐ๋ฐ˜ ๋ ˆ์ด์•„์›ƒ๊ณผ Autolayout์œผ๋กœ ๋ ˆ์ด์•„์›ƒ์„ ์งœ๋Š” ๋ฐฉ๋ฒ•์˜ ์ฐจ์ด์ ์„ ์ดํ•ดํ–ˆ๋‚˜์š”?

  1. Frame ๊ธฐ๋ฐ˜ ๋ ˆ์ด์•„์›ƒ
  • ํ”„๋ ˆ์ž„ ๋ ˆ์ด์•„์›ƒ์€ ๊ฐ ๋ทฐ์˜ ํ”„๋ ˆ์ž„์„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.
  • ํ”„๋ ˆ์ž„ ๋ ˆ์ด์•„์›ƒ์€ ๋ทฐ์˜ ์ขŒํ‘œ๊ณ„์—์„œ ๋ทฐ์˜ ์›์ , ๋†’์ด ๋ฐ ํญ์„ ์ •์˜ํ•œ๋‹ค.
  • ํ”„๋ ˆ์ž„ ๋ ˆ์ด์•„์›ƒ์€ ์œ ์—ฐ์„ฑ๊ณผ ์„ฑ๋Šฅ์„ ๊ทน๋Œ€ํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š”๋ฐ ์žฅ์ ์ด ์žˆ๋‹ค. ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•˜๋ฉด ์›ํ•˜๋Š”๋ฐ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ•˜์ง€๋งŒ ๋ชจ๋“  ๋ณ€๊ฒฝ์„ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ๊ด€๋ฆฌํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ„๋‹จํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ฐฐ์น˜ํ•˜๋Š”๋ฐ๋„ ๋””๋ฒ„๊น… ๋ฐ ์œ ์ง€๋ณด์ˆ˜์— ๋งŽ์€ ๋…ธ๋ ฅ์ด ํ•„์š”ํ•˜๋‹ค.

  1. Autolayout
  • ์ž๋™๋ ˆ์ด์•„์›ƒ์€ ์ œ์•ฝ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•ด ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ •์˜ํ•œ๋‹ค.
  • ๋‚ด๋ถ€ ๋ณ€๊ฒฝ๊ณผ ์™ธ๋ถ€ ๋ณ€๊ฒฝ์— ๋™์ ์œผ๋กœ ๋ฐ˜์‘ํ•˜๋Š” ๋ ˆ์ด์•„์›ƒ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

โœ… Autolayout์—์„œ constraint์˜ ์˜๋ฏธ์™€ constraint๋ฅผ ์ฃผ์–ด ๋ทฐ๋ฅผ ๋ฐฐ์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ดํ•ดํ–ˆ๋‚˜์š”?

โœ… Autolayout์—์„œ equal width, equal height์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ณ  ์ง์ ‘ ์‹ค์Šตํ•ด๋ณด์•˜๋‚˜์š”?

โœ… Autolayout์—์„œ Align center X, Y์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ณ  ์ง์ ‘ ์‹ค์Šตํ•ด๋ณด์•˜๋‚˜์š”?

โœ… ์œ„ ์‚ฌํ•ญ์„ ์ข…ํ•ฉํ•˜์—ฌ Autolayout์œผ๋กœ ๋ทฐ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฐฐ์น˜ํ•ด๋ณด์‹œ๊ณ , iPhone8 ๊ณผ iPhone13 Pro Max ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋กœ ๋Œ๋ ธ์„ ๋•Œ ๋ทฐ๊ฐ€ ๋น„์œจ์— ์•Œ๋งž๊ฒŒ ๋ฐฐ์น˜๋˜์—ˆ๋‚˜์š”?

  • UI imageview - ์ค‘๊ฐ„์—์„œ ๋ถ€ํ„ฐ Y์ถ•์œผ๋กœ 0.4์œ„์น˜, X์ถ• ๊ฐ€์šด๋ฐ ์ •๋ ฌ
  • UI label(Graph) - ์ค‘๊ฐ„์—์„œ ๋ถ€ํ„ฐ Y์ถ•์œผ๋กœ 0.5์œ„์น˜, X์ถ• ๊ฐ€์šด๋ฐ ์ •๋ ฌ
  • UI view(7๊ฐœ) - ๋†’์ด ๋„ˆ๋น„ ๊ฐ๊ฐ ์„ค์ •, bottom 0, X์ถ•(0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75) ์ •๋ ฌ
  • UI view(์•„๋ž˜ ํšŒ์ƒ‰ ๋ฐ”) - bottom 0, X์ถ• ๊ฐ€์šด๋ฐ ์ •๋ ฌ

iPhone8 ์‹œ๋ฎฌ๋ ˆ์ด์…˜

iPhone13 Pro ์‹œ๋ฎฌ๋ ˆ์ด์…˜

profile
๊ฑด์ถ•ํ•™๋„์˜ PM ๋„์ „๊ธฐ

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด