如何禁用 iPhone 和 iPad 设备的旋转动画
How to disable rotation animation for iPhone and iPad devices
我使用了这些问题中的以下代码来禁用旋转动画。它适用于 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)
}
Whosebug 问题
Disable orientation change rotation animation
它无法工作,因为 ipad 旋转时屏幕尺寸没有改变(或改变不显着)。一旦我关闭了一个屏幕的纵向方向,我就遇到了这个方法的问题。我的解决方法是通过观察通知来捕捉设备方向。但在这种情况下,您将只有 "did rotate" 状态。
根据我的测试,您似乎可以禁用 iPhone 的旋转动画,但是当涉及到 iPad 时,动画由系统处理,无法与之交互。
因此我得出结论,鉴于当前 public api,您无法在 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)
}
Whosebug 问题
Disable orientation change rotation animation
它无法工作,因为 ipad 旋转时屏幕尺寸没有改变(或改变不显着)。一旦我关闭了一个屏幕的纵向方向,我就遇到了这个方法的问题。我的解决方法是通过观察通知来捕捉设备方向。但在这种情况下,您将只有 "did rotate" 状态。
根据我的测试,您似乎可以禁用 iPhone 的旋转动画,但是当涉及到 iPad 时,动画由系统处理,无法与之交互。
因此我得出结论,鉴于当前 public api,您无法在 iPad 上禁用旋转动画。