ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [iOS] 뷰의 μƒνƒœλ³€ν™” 감지 λ©”μ„œλ“œ
    iOS 2022. 2. 18. 13:46

    λ·°κ°€ 화면에 λ³΄μ—¬μ§€λŠ” μƒνƒœμ˜ λ³€ν™”λ‚˜ 뷰의 λ ˆμ΄μ•„μ›ƒμ— λ³€ν™”κ°€ 생기면 λ·° μ»¨νŠΈλ‘€λŸ¬λŠ” μ—¬λŸ¬κ°€μ§€ λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•΄ μ„œλΈŒ ν΄λž˜μŠ€κ°€ μ μ ˆν•œ λŒ€μ‘μ„ ν•  수 있게 ν•œλ‹€.

    뷰의 μƒνƒœλ³€ν™” λ©”μ„œλ“œ

    λ·°κ°€ λ‚˜νƒ€λ‚˜κ±°λ‚˜ μ‚¬λΌμ§€λŠ” λ“± λ·°κ°€ 화면에 λ³΄μ΄λŠ” μƒνƒœκ°€ λ³€ν™”ν• λ•Œ ν˜ΈμΆœλ˜λŠ” λ©”μ„œλ“œ


    func viewDidLoad()

    • λ·° 계측이 λ©”λͺ¨λ¦¬μ— λ‘œλ“œλœ 직후 ν˜ΈμΆœλ˜λŠ” λ©”μ„œλ“œ
    • 뷰의 좔가적인 μ΄ˆκΈ°ν™” μž‘μ—…μ„ ν•˜κΈ° 쒋은 μ‹œμ 
    • λ©”λͺ¨λ¦¬μ— 처음 λ‘œλ”©λ  λ•Œ 1회 ν˜ΈμΆœλ˜λŠ” λ©”μ„œλ“œλ‘œ, λ©”λͺ¨λ¦¬ 경고둜 λ·°κ°€ 사라지지 μ•ŠλŠ” 이상 λ‹€μ‹œ ν˜ΈμΆœλ˜μ§€ μ•ŠλŠ”λ‹€.

     

    func viewWillAppear(_ animated: Bool)

    • λ·°κ°€ λ·° 계측에 μΆ”κ°€λ˜κ³  화면이 ν‘œμ‹œλ˜κΈ° 직전에 ν˜ΈμΆœλ˜λŠ” λ©”μ„œλ“œ
    • 뷰의 좔가적인 μ΄ˆκΈ°ν™” μž‘μ—…μ„ ν•˜κΈ° 쒋은 μ‹œμ 
    • λ‹€λ₯Έ 뷰둜 μ΄λ™ν–ˆλ‹€κ°€ λ˜λŒμ•„μ˜€λ©΄ μž¬ν˜ΈμΆœλ˜λŠ” λ©”μ„œλ“œλ‘œ, 화면이 λ‚˜νƒ€λ‚ λ•Œλ§ˆλ‹€ μˆ˜ν–‰ν•΄μ•Όν•˜λŠ” μž‘μ—…μ„ ν•˜κΈ° 쒋은 μ‹œμ 

     

    func viewDidAppear(_ animated: Bool)

    • λ·°κ°€ λ·° 계측에 μΆ”κ°€λ˜μ–΄ 화면이 ν‘œμ‹œλ˜λ©΄ ν˜ΈμΆœλ˜λŠ” λ©”μ„œλ“œ
    • λ·°λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 것과 κ΄€λ ¨λœ 좔가적인 μž‘μ—…μ„ ν•˜κΈ° 쒋은 μ‹œμ 

     

    func viewWillDisappear(_ animated: Bool)

    • λ·°κ°€ λ·° κ³„μΈ΅μ—μ„œ 사라지기 직전에 ν˜ΈμΆœλ˜λŠ” λ©”μ„œλ“œ
    • λ·°κ°€ μƒμ„±λœ λ’€ λ°œμƒν•œ λ³€ν™”λ₯Ό 이전 μƒνƒœλ‘œ 되돌리기 쒋은 μ‹œμ 

     

    func viewDidDisappear(_ animated: Bool)

    • λ·°κ°€ λ·° κ³„μΈ΅μ—μ„œ 사라진 ν›„ ν˜ΈμΆœλ˜λŠ” λ©”μ„œλ“œ
    • λ·°λ₯Ό μˆ¨κΈ°λŠ” 것과 κ΄€λ ¨λœ 좔가적인 μž‘μ—…μ„ ν•˜κΈ° 쒋은 μ‹œμ 
    • μ‹œκ°„μ΄ 였래 κ±Έλ¦¬λŠ” μž‘μ—…μ€ ν•˜μ§€ μ•ŠλŠ” 것이 μ’‹μŒ

     

     

    뷰의 λ ˆμ΄μ•„μ›ƒ λ³€ν™” λ©”μ„œλ“œ

    λ·°κ°€ μƒμ„±λœ ν›„ λ°”μš΄λ“œ 및 μœ„μΉ˜ λ“±μ˜ λ ˆμ΄μ•„μ›ƒμ— λ³€ν™”κ°€ λ°œμƒν–ˆμ„ λ•Œ ν˜ΈμΆœλ˜λŠ” λ©”μ†Œλ“œ

     


    func viewWillLayoutSubviews()

    • λ·°κ°€ μ„œλΈŒλ·°μ˜ λ ˆμ΄μ•„μ›ƒμ„ λ³€κ²½ν•˜κΈ° 직전에 ν˜ΈμΆœλ˜λŠ” λ©”μ„œλ“œ
    • μ„œλΈŒλ·°μ˜ λ ˆμ΄μ•„μ›ƒμ„ λ³€κ²½ν•˜κΈ° 전에 μˆ˜ν–‰ν•  μž‘μ—…μ„ ν•˜κΈ° 쒋은 μ‹œμ 

     

    func viewDidLayoutSubviews()

    • μ„œλΈŒλ·°μ˜ λ ˆμ΄μ•„μ›ƒμ΄ λ³€κ²½λœ ν›„ ν˜ΈμΆœλ˜λŠ” λ©”μ„œλ“œ
    • μ„œλΈŒλ·°μ˜ λ ˆμ΄μ•„μ›ƒμ„ λ³€κ²½ ν•œ ν›„ 좔가적인 μž‘μ—…μ„ μˆ˜ν–‰ν•˜κΈ° 쒋은 μ‹œμ 

     

    func updateViewConstraints()

    • λ·° 컨트둀러의 λ·°κ°€ μ œμ•½ 쑰건을 μ—…λ°μ΄νŠΈν•΄μ•Ό ν•  λ•Œ ν˜ΈμΆœλ˜λŠ” λ©”μ„œλ“œ
    • μ œμ•½ 쑰건을 λ³€κ²½ν•˜λŠ” 것이 λ„ˆλ¬΄ λŠλ¦¬κ±°λ‚˜ 보기에 μ—¬λŸ¬ κ°€μ§€ 쀑볡 λ³€κ²½ 사항이 λ°œμƒν•˜λŠ” κ²½μš°μ—λ§Œ 이 λ©”μ„œλ“œλ₯Ό override ν•΄μ•Όν•œλ‹€.

     

    func viewLayoutMarginsDidChange()

    • λ·° 컨트둀러의 루트 뷰의 λ ˆμ΄μ•„μ›ƒ 여백이 λ³€κ²½λ˜μ—ˆμŒμ„ μ•Œλ¦¬κΈ° μœ„ν•΄ ν˜ΈμΆœλ˜λŠ” λ©”μ„œλ“œ
    • 이 방법을 μ‚¬μš©ν•˜λ©΄ μƒˆ μ—¬λ°± 값을 κΈ°μ€€μœΌλ‘œ λ‚΄μš© μœ„μΉ˜λ₯Ό μ—…λ°μ΄νŠΈν•  수 μžˆλ‹€.

     

    func viewSafeAreaInsetsDidChange()

    • λ·° 컨트둀러의 루트 λ·° μ„€μ • μ•ˆμ „ μ˜μ—­μ΄ λ³€κ²½λ˜μ—ˆμŒμ„ μ•Œλ¦¬κΈ° μœ„ν•΄ ν˜ΈμΆœλ˜λŠ” λ©”μ„œλ“œ
    • 이 방법을 μ‚¬μš©ν•˜λ©΄ μƒˆ μ•ˆμ „ μ˜μ—­μ„ μˆ˜μš©ν•˜λ„λ‘ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ—…λ°μ΄νŠΈν•  수 μžˆλ‹€. UIKit은 μ‹œμŠ€ν…œ λ§‰λŒ€μ˜ 크기 λ³€κ²½ λ˜λŠ” λ·° 컨트둀러의 μΆ”κ°€ μ•ˆμ „ μ˜μ—­ μ„ΈνŠΈλ₯Ό μˆ˜μ •ν•  λ•Œ μ•ˆμ „ μ˜μ—­μ„ μ—…λ°μ΄νŠΈν•œλ‹€. λ˜ν•œ UIKit은 보기가 화면에 λ‚˜νƒ€λ‚˜κΈ° 직전에 이 λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•œλ‹€.

     

    Apple Developer Documentation

    λŒ“κΈ€

Designed by Tistory.