如何禁用iPhone和iPad设备的旋转动画



我使用了这些问题中的以下代码来禁用旋转动画。它适用于iPhone设备,但不适用于iPad。

所讨论的视图控制器

是以模态方式呈现的导航控制器的根视图控制器。

有谁知道为什么以下方法适用于iPhone而不是iPad?

 override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    coordinator.animate(alongsideTransition: nil) { _ in UIView.setAnimationsEnabled(true) }
    UIView.setAnimationsEnabled(false)
    super.viewWillTransition(to: size, with: coordinator)
}

堆栈溢出问题

禁用方向更改旋转动画

在 7.3/9/2+ Swift 中,当设备旋转时如何禁用旋转动画?

从我的测试来看,您似乎可以禁用iPhone的旋转动画,但是当涉及到iPad时,动画由系统处理,并且无法与之交互。

因此,我得出的结论是,鉴于当前的公共 api,您无法禁用 iPad 上的旋转动画。

它无法工作,因为屏幕大小在iPad旋转时没有改变(或变化不大(。一旦我关闭了一个屏幕的纵向方向,我就遇到了这种方法的问题。我的解决方法是通过观察通知来捕获设备方向。但在这种情况下,您将只有"确实旋转"状态。

最新更新