기존에는 코드로 강제 화면 회전시 회전 상태값 확인은 NotificationCenter 를 이용했다.

 

NotificationCenter.default.addObserver(self, selector: #selector(orientationDidChange(notification:)), name: UIDevice.orientationDidChangeNotification, object: nil)

 

@objc func orientationDidChange(notification: Notification) 함수 호출이 안됨. 

 

IOS 16 올라오면서 디바이스 본체 자체를 회전해야 Notification이 호출된다. 무슨 이유인지는 모르겠다.

그래서 UIViewContoller 의 viewWillTransition 으로 처리하게 됬다.

 

 override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
        super.viewWillTransition(to: size, with: coordinator)
        
        coordinator.animate(alongsideTransition: { [weak self] context in
            guard let `self` = self else {
                return
            }
            // size를 확인하면 회전된 이후 사이즈로 들어온다.
            		..... 회전 관련 로직 추가 .....
         })
 }

+ Recent posts