gpt4 book ai didi

ios - 为什么在 iOS 6 中会发生自转,而在 iOS 5 中不会发生?

转载 作者:行者123 更新时间:2023-12-01 17:56:04 26 4
gpt4 key购买 nike

我对模拟器中的 iOS 6 和 AutoLayout 有一个一般性问题。
我的应用程序也针对 iOS 5 和 iOS 6。我需要在 StoryBoard 中关闭 AutoLayout,否则应用程序会在 iOS 5 模拟器中崩溃(因为 iOS6 首先支持 AutoLayout)。
但是当我启动 iOS 6 模拟器时,所有 View 都在旋转,所有 subview 都在相应地调整大小。使用 iOS 5 模拟器时,所有 View 都不会随着设备方向的改变而旋转。

这也会发生在真实设备上吗?那么,即使在 Storyboard 中关闭 AutoLayout 选项,所有 View 是否会随着 iOS 6 的设备方向旋转,并且在真实设备上会更好?

谢谢!

最佳答案

Apple 改变了 iOS 6 中自动旋转的工作方式。

如果您在 Xcode 4.6 中创建项目,Xcode 会将其设置为使用 iOS 6 自动旋转 API。项目模板允许纵向、横向左和横向右方向(以及 iPad 应用程序中的倒置纵向)。因此,当您在 iOS 6(设备或模拟器)上运行应用程序时,应用程序允许界面旋转。

当您在 iOS 5 上(在模拟器或设备上)运行该项目时,系统会忽略 iOS 6 自动旋转 API 并查找 shouldAutorotateToInterfaceOrientation: View Controller 上的方法。由于 Xcode 4.6 没有创建该方法(并且可能你没有添加它),系统使用默认实现,它只返回 YES用于纵向。因此,在 iOS 5 上,您不会获得任何界面旋转。

如果您不希望界面旋转,简单的解决方案是转到目标的摘要并关闭横向。

target summary with landscape buttons called out

您可以从几个官方来源了解更多信息:

  • The “ Handling View Rotations” section of the UIViewController Class Reference .
  • The “UIKit” section of the iOS 6.0 Release Notes .
  • “The Evolution of View Controllers on iOS” video from WWDC 2012 .
  • 关于ios - 为什么在 iOS 6 中会发生自转,而在 iOS 5 中不会发生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17437472/

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