簡體   English   中英

iOS應用未檢測到設備方向更改

[英]iOS App Does Not Detect Device Orientation Change

我在應用程序中遇到方向更改問題。 我的應用程序支持Portrait,LandscapeLeft和LandscapeRight設備方向,我100%確信已在Info.plist中正確配置了它。 當我在iPhone / Simulator上運行我的應用程序並旋轉設備時,我的應用程序ViewControllers都不響應旋轉。 也就是說,無論我旋轉手機有多辛苦和瘋狂,任何ViewController都不能更改為橫向模式。 我試圖覆蓋“ Autorotate”變量以返回true / false,結果相同,我的應用程序堅持使用單人像模式,這不是我想要的。 所以我在想,也許我的應用甚至無法檢測到設備方向更改; 因此,我將以下代碼放入AppDelegate中,我是對的,旋轉手機時永遠不會調用func“ deviceOrientationDidChange”,但是當應用程序進入后台時才調用func“ deviceOrientationDidChange”。 有人有任何線索嗎? 我已經為此苦苦掙扎了好幾天,試圖從互聯網上找到解決方案,但是沒有希望。 請幫忙。

UIDevice.current.beginGeneratingDeviceOrientationNotifications()
let notifiCenter = NotificationCenter.default
notifiCenter.addObserver(self, selector: #selector(self.deviceOrientationDidChange(_:)), name: .UIDeviceOrientationDidChange, object: nil)

func deviceOrientationDidChange(_ notification: Notification) {
    print("device orientation did change...")
}

我不知道您要達到什么目的,但是通常使用:

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { super.viewWillTransition(to: size, with: coordinator) // Do more stuff }

輪播更改時,應該足以捕獲回調,因為視圖大小也會更改。

我仍然不知道真正的原因是什么,但是當我Pod更新了我的應用程序中使用的所有pod框架后,這個問題確實得到解決。 我真的非常努力地嘗試找出導致此問題的原因。 不幸的是,我不能。 我有大約20個通過pod安裝的第三方框架。 我對這個問題的解決方法是Pod Update。 原因沒有運氣。 希望這個答案對將來有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM