gpt4 book ai didi

ios - iPadOS 13 上的屏幕旋转故障

转载 作者:行者123 更新时间:2023-11-29 13:53:03 24 4
gpt4 key购买 nike

我一直在处理 iPadOS 13.1.3 上与设备方向相关的 UI 故障。对此有任何解决方案或解决方法吗?


问题

描述

让屏幕 A 以模态方式显示屏幕 B。屏幕 A 仅锁定为纵向,屏幕 B 支持所有方向。如果显示屏幕 A,然后设备旋转到横向,然后屏幕 B 即将显示,屏幕 A 首先被错误地调整大小,这会导致奇怪的故障。

图片

左图是在 iPadOS 13.1.3 上拍摄的,会产生 UI 故障。右边的图像是在安装了 iOS 12.4.1 的 iPad 上录制的,布局正确。所有附加图像都是下面链接的 github 项目的一部分。

项目

请随时使用 this 仔细查看此问题。存储库。

谢谢。


编辑:

iPadOS 13.2 上不再出现该故障。

最佳答案

我是这样解决的:

  • 删除 func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) 的实现。让我们让 View Controller 处理这个。

  • 在 VC1 中:

    override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
    .portrait
    }

    同时删除“hacky solution”。

  • 在 VC2 中:

    override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
    .all
    }
    override var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation {
    .portrait
    }

所以我们得到的是 VC2 最初以纵向显示,但随后可以旋转。

如果你想让VC2出现后立即旋转成横屏,那么加上这个:

var appeared = false
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
appeared = true
UIViewController.attemptRotationToDeviceOrientation()
}

关于ios - iPadOS 13 上的屏幕旋转故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58521687/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com