WWDC23에서 발표된 새로운 생명주기 메서드에 대해 알아봅시다.
23년에 발표되긴 했지만 iOS 13부터 적용이 가능하다.
viewIsAppearing()
은 viewWillAppear()
가 호출된 후, viewDidAppear()
호출 전에 호출되는 메서드이다.
viewWillaAppear()에서는 아직 뷰가 올라오기 전이고, viewIsAppearing()에서는 뷰가 뷰의 계층 구조 상에 올라온 후 호출된다.
때문에 viewIsAppearing()
에서는 뷰의 크기나 초기 기하구조를 다루는 코드를 에서 수행할 수 있다.
그렇다면 viewDidAppear()
시점에 수행해도 되는 것이 아닌가?viewDidAppear()
도 사용자의 눈에 뷰가 보이기 전에 뷰를 다룰 수 있지만 사용자에게 보여지기 직전이기 때문에 작업에 따라 늦은 타이밍이 될 수도 있다.
그렇기 때문에 뷰가 올라와 있고, 사용자에게 보이기 전이며 뷰의 크기를 다룬다거나 UI 업데이트가 필요하다면 viewIsAppearing()
시점에 처리할 수 있을 것이다.
위의 사진을 보면 layout을 다루는 메서드 중 viewWillLayoutSubviews()
가 있는데 여기에서 작업을 할 수도 있는 것이 아닐까?
일단 viewWillLayoutSubviews()
는 layoutSubviews()
가 호출되기 전에 호출되는 메서드이다.layoutSubViews()
는 뷰가 전환된 후에도 여러번 호출이 되는 메서드이다. 뷰의 업데이트가 필요하다고 시스템이 판단할 시 자동으로 호출된다.
반면에 viewIsAppearing()
은 뷰가 전환될 때 한 번 호출되는 메서드이기 때문에 초기에 한 번 적용 해야하는 경우에 사용할 수 있다.
https://developer.apple.com/documentation/uikit/uiviewcontroller/4195485-viewisappearing
'iOS > 💻 iOS Study' 카테고리의 다른 글
[iOS/Point-Free] 동시성 프로그래밍: OperationQueue, CGD와 Combine (0) | 2024.12.11 |
---|---|
[iOS/Point-Free] 동시성 프로그래밍의 과거 - 스레드 (0) | 2024.11.25 |
[iOS/ReactorKit] ReactorKit 알아보기 (0) | 2024.02.28 |
RxSwift 왜 사용?? (0) | 2023.12.28 |
[Swift] DI 의존성 주입 (1) | 2023.12.19 |