[iOS] ViewController

pomยท2023๋…„ 5์›” 20์ผ

๐Ÿฅ‘ย ViewController์˜ ์ƒ๋ช…์ฃผ๊ธฐ

  1. ์•ฑ์„ ์ฒ˜์Œ ์‹คํ–‰/์ƒˆ๋กœ์šด ์žฅ๋ฉด์œผ๋กœ ์ „ํ™˜ํ•  ๋•Œ ๊ทธ ์žฅ๋ฉด(Scene)์„ ๋‹ด๋‹นํ•˜๋Š” ViewController ๊ฐ์ฒด๊ฐ€ ์ƒˆ๋กœ ์ƒ์„ฑ๋œ๋‹ค.
  2. ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋˜์–ด ์ž์‹ ์˜ ์—ญํ• ์„ ํ•œ๋‹ค.
  3. ์ฃผ์–ด์ง„ ์—ญํ• ์„ ๋ชจ๋‘ ๋๋‚ด๋ฉด ์•ฑ์€ ์ด์ „ ์žฅ๋ฉด์œผ๋กœ ๋ณต๊ท€
  4. ์ƒ์„ฑ๋˜์—ˆ๋˜ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ ๊ฐ์ฒด๋Š” ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ•ด์ œ๋˜๋ฉด์„œ ์†Œ๋ฉธ

ViewController์˜ ์ƒํƒœ์— ๋”ฐ๋ผ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์†Œ๋“œ๋“ค์€ ViewController์— ์ •์˜๋˜์–ด์žˆ๋‹ค.


๐Ÿฅ‘ย View์˜ ์ƒํƒœ๋ณ€ํ™”

๐Ÿฅฅย ์ƒํƒœ๋ณ€ํ™”์— ๋”ฐ๋ผ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์†Œ๋“œ๋“ค

๐Ÿ’ init

๐Ÿ’loadView()

  • ํ™”๋ฉด์— ๋„์–ด์งˆ View๋ฅผ ๋งŒ๋“ค๊ณ , ViewController์˜ view ํ”„๋กœํผํ‹ฐ์— ํ• ๋‹น
  • ์ง์ ‘์ ์œผ๋กœ ํ˜ธ์ถœX

๐Ÿ’ viewDidLoad()

  • ViewController์˜ ๋ชจ๋“  ๋ทฐ๋“ค์ด ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋˜์—ˆ์„ ๋•Œ ํ˜ธ์ถœ(present ๋“ฑ์œผ๋กœ)
  • ํ™”๋ฉด์ด ๋ณด์—ฌ์ง€๊ธฐ ์ „ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฟŒ๋ ค์ฃผ๋Š” ํ–‰์œ„์— ๋Œ€ํ•œ ์ฝ”๋“œ ์ž‘์„ฑ
  • ์ƒ๋ช…์ฃผ๊ธฐ์—์„œ ๋”ฑ ํ•œ๋ฒˆ ๋ถˆ๋ฆผ
    - ๋„คํŠธ์›Œํฌ ํ˜ธ์ถœ ๋“ฑ ๋”ฑ ํ•œ ๋ฒˆ ํ˜ธ์ถœ๋  ํ–‰์œ„๋“ค์„ ์ด ๋ฉ”์†Œ๋“œ ์•ˆ์—์„œ ์ •์˜ํ•จ
    • ๋ทฐ์˜ ์ถ”๊ฐ€์ ์ธ ์ดˆ๊ธฐํ™” ์ž‘์—… ํ•  ์ˆ˜ ์žˆ์Œ

๐Ÿ’ viewWillAppear(_:)

  • ๋ทฐ๊ฐ€ ๋ทฐ ๊ณ„์ธต์— ์ถ”๊ฐ€๋˜๊ณ , ํ™”๋ฉด์— ๋ณด์ด๊ธฐ ์ง์ „์— ๋งค ๋ฒˆ ํ˜ธ์ถœ๋จ
  • viewDidLoad()์™€ ๋‹ฌ๋ฆฌ ํ™”๋ฉด ์ „ํ™˜์„ ํ†ตํ•ด, ๋‹ค๋ฅธ ๋ทฐ๋กœ ์ด๋™ํ–ˆ๋‹ค๊ฐ€ ๋Œ์•„์˜ค๋ฉด ์žฌํ˜ธ์ถœ๋จ
  • ํ™”๋ฉด์ด ๋“ฑ์žฅํ•  ๋•Œ ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐฑ์‹ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์ด ๋ฉ”์†Œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œํ•œ๋‹ค.
    ex> ์• ๋‹ˆ๋ฉ”์ด์…˜ ์‹คํ–‰, ๋น„๋””์˜ค, ์‚ฌ์šด๋“œ ์žฌ์ƒ

๐Ÿ’ viewDidAppear(_:)

  • ViewController์˜ ๋ทฐ๊ฐ€ ๋ฐ์ดํ„ฐ์™€ ํ•จ๊ป˜ ์™„์ „ํžˆ ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚˜๋ฉด ํ˜ธ์ถœ๋จ

๐Ÿ’ viewWillDisappear(_:)

  • ViewController๊ฐ€ ํ™”๋ฉด์—์„œ ์‚ฌ๋ผ์ง€๊ธฐ ์ง์ „์— ํ˜ธ์ถœ
  • ์˜ค๋ฒ„๋ผ์ด๋“œ โ†’ ํ•ด๋‹น ๋ทฐ๋ฅผ ํ†ตํ•ด ์ผ์–ด๋‚œ ๋ณ€ํ™” ์ €์žฅ, first responder ์ƒํƒœ๋ฅผ ๋‚ด๋ ค๋†“๊ธฐ, ๋ทฐ๊ฐ€ ๋‚˜ํƒ€๋‚ฌ์„ ๋•Œ ์กฐ์ •๋๋˜ ๋‹ค๋ฅธ ๋ทฐ๋“ค์„ ์›๋ž˜๋Œ€๋กœ ๋Œ๋ ค๋†“๊ธฐ ๋“ฑ ํ•  ์ˆ˜ ์žˆ์Œ

๐Ÿ’viewDidDisappear(_:)

  • ํ™”๋ฉด์—์„œ ์‚ฌ๋ผ์ง„ ์งํ›„
  • ๋ฉˆ์ถ”์–ด์•ผํ•  ์ž‘์—…๋“ค
  • notifications, device sensor์˜ listening ์„ ๋ฉˆ์ถ”๋Š” ๊ธฐ๋Šฅ

๐Ÿฅ‘ View์™€ ViewController์˜ ๋ ˆ์ด์•„์›ƒ ์‚ฌ์ดํด

*๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์–ดํ”Œ ๋™์ž‘์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ๋งค์šฐ ์ค‘์š”!

UIView์˜ Layout: ํ™”๋ฉด์—์„œ UIView์˜ ํฌ๊ธฐ์™€ ์œ„์น˜

๋ชจ๋“  View๋Š” Frame์„ ๊ฐ–๊ณ  ์žˆ๋‹ค.
โžก๏ธ Frame์€ ๋ถ€๋ชจ ๋ทฐ์˜ Coordinate System(์ขŒํ‘œ๊ณ„)์—์„œ์˜ ์œ„์น˜ ์ •๋ณด, ํฌ๊ธฐ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

๐Ÿฅฅย ๋ ˆ์ด์•„์›ƒ ์‚ฌ์ดํด


1. init
2. update : autolayout์˜ constraints๋ฅผ ๊ฐฑ์‹  (subview โ†’ superview)
3. layout : ๊ฐฑ์‹ ๋œ constraints๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋ ˆ์ด์•„์›ƒ์„ ์‹คํ–‰

  • view์˜ center์™€ bounds ๊ฒฐ์ •
  • ๋ ˆ์ด์•„์›ƒ ๊ฐฑ์‹  ์ˆœ์„œ: superview โ†’ subview
  1. draw
  • UIView์˜ drawRect(rect: CGRect) ํ˜ธ์ถœ๋จ
  • CoreGraphics๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ๋ฆผ
profile
Developer

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