iphone - 在 iOS 上,为什么 shouldAutorotateToInterfaceOrientation 被调用 10、12 或 13 次?

标签 iphone ios ipad uiviewcontroller uiinterfaceorientation

如果为 iPad 创建单 View 应用程序,根据为 plist 设置的支持的设备方向以及 shouldAutorotateToInterfaceOrientation 返回的内容,可以调用 shouldAutorotateToInterfaceOrientation 10, 12 次,甚至 13 次。

一个简单的情况是,如果“支持设备方向”设置为横向左,并且 shouldAutorotateToInterfaceOrientation 也仅针对横向左返回YES,那么如果我启动如果应用程序处于横向左方向,则 shouldAutorotateToInterfaceOrientation 将被连续调用 12 次。如果我以其他方向握住它并启动应用程序,则为 13 次。

连续调用这么多次的原因是什么?

最佳答案

正如我在 UIDevice.h 中看到的,方向类型不用作掩码,并且应该执行多个请求:

  • 检查是否支持当前方向
  • 如果没有,请通过 1-3 或 1-4 请求查找支持的方向

对于单个方向更改,整个过程可能会发生多次(例如,系统可能想要向应用程序窗口发送正确的通知,状态栏可能想要独立检查方向,欢迎来到 OOP,我是并不是说它会发生,但它可能会发生),而第一或第二阶段的结果可能以某种方式由一个组件而不是另一个组件缓存。

关于iphone - 在 iOS 上,为什么 shouldAutorotateToInterfaceOrientation 被调用 10、12 或 13 次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10768524/

相关文章:

ios - UISwipeGestureRecognizer 额外参数 'target' 调用存档项目但不调用构建项目

iphone - 如何从XMPP的NSData和头像数据创建UIImage?

iphone - iPhone如何自动插入小数位?

ios - iOS 应用内购买退款 - 由开发者而非最终用户触发

ios - 从 Swift 中的静态函数中的另一个文件访问枚举

cocoa-touch - 如何设置 Popover View 以正确关闭

iphone - 触摸移动时将底 View 移至顶 View

ios - 在 iPad 屏幕上按下 Controller 两次

ios - 在方向更改时重新加载 UIPageViewController View

ios - performSegueWithIdentifier 在 iOS 9.x 中导致 NSInternalInconsistencyException 而不是在 8.x 中