首页 文章

iOS应用程序不会检测设备方向更改

提问于
浏览
0

我的应用程序中的方向更改存在问题 . 我的应用程序支持Portrait,LandscapeLeft和LandscapeRight设备方向,我100%确定我在Info.plist中正确配置它 . 当我在我的iPhone /模拟器上运行我的应用程序并旋转设备时,我的应用程序ViewControllers都没有响应旋转 . 也就是说,无论我旋转手机多么辛苦和疯狂,都不能将ViewControllers更改为横向模式 . 我试图覆盖'Autorotate'var以返回true / false,同样的结果,我的应用程序坚持单个Portrait Mode,这不是我想要的 . 所以我想也许我的应用程序甚至无法检测到设备方向的变化;因此,我将以下代码放在我的AppDelegate中,我是对的,当我旋转手机时,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...")
}

2 回答

  • 0

    我不知道你想要达到什么目的,但通常使用:

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

    应该足以在旋转更改时捕获回调,因为视图大小也会发生变化 .

  • 0

    我仍然无法弄清楚究竟是什么原因,但是在我更新了我的应用程序中使用的所有pod框架之后,这个问题确实得到了解决 . 我真的很努力地试图找出导致这个问题的原因 . 不幸的是,我做不到 . 我通过pod安装了大约20个第三方框架 . 我对此问题的解决方案是Pod Update . 原因是什么都没有运气 . 希望这个答案能够帮助将来的某个人 .

相关问题