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

时间:2017-03-26 08:03:17

标签: ios iphone ipad swift3

我使用了以下这些问题的代码来禁用旋转动画。它适用于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)
}

StackOverflow问题

Disable orientation change rotation animation

In 7.3/9/2+ Swift how to disable rotation animation, when device rotates?

2 个答案:

答案 0 :(得分:1)

从我的测试中可以看出,您可以禁用iPhone的旋转动画,但是当涉及到iPad时,动画由系统处理,并且不可能与它进行交互。

所以我会得出结论,鉴于当前的公共api,你不能在iPad上禁用旋转动画。

答案 1 :(得分:0)

它无法正常工作,因为屏幕尺寸在ipad旋转时没有改变(或者没有明显变化)。一旦我关闭了一个屏幕的纵向方向,我就遇到了这种方法的问题。我的解决方法是通过观察通知来捕获设备方向。但在这种情况下,你只会"旋转"状态。