【问题标题】:iPad launch orientation when flat issues in app delegate应用委托中出现平面问题时的 iPad 启动方向
【发布时间】:2011-03-14 08:30:52
【问题描述】:

像许多人一样,我有一个启动屏幕,它会以动画形式显示我的应用的第一个视图。我一直在为 iPad 重新设计此功能,如果您将设备保持在纵向或横向模式,一切都按预期工作,使用正确的默认图像,使用用于动画关闭的正确图像,所有方向都有效很好。

但是

如果我让设备进入横向模式,然后将其平放在桌子上,就会出错。使用了正确的初始屏幕,但用于对其进行动画处理的图像是错误的,我已将其追溯到以下返回 5 的代码 - 即,没有任何要返回的纵向/纵向/横向/横向模式。

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
UIInterfaceOrientation orientation = [UIDevice currentDevice].orientation;

设备本身清楚地知道要使用的正确方向,因为状态栏是正确的,并且确实第一个视图控制器旋转到正确的方向 - 但很明显 [UIDevice currentDevice].orientation 与设备不同实际上知道,所以我用来在应用程序委托中部署适当图形的代码是错误的。

我想我的问题是 - 我该如何解决这个问题?有没有办法在应用委托中获得正确的设备方向?

【问题讨论】:

    标签: ipad delegates startup orientation


    【解决方案1】:

    UIInterfaceOrientationUIDeviceOrientation 的子集。如果UIDeviceOrientationIsValidInterfaceOrientation 为假,那么您通常可以假设UIInterfaceOrientationPortrait。除了检查设备方向,还可以检查UIApplicationstatusBarOrientation,但启动时也可能没有有效值。

    【讨论】:

    • 啊,不知道 IsValidInterfaceOrientation,这很有用。有趣的是,如果我在应用程序委托中使用 statusBarOrientation,这给了我一个有效的方向,但是错误的方向 - 正如你所说的那样,似乎在启动时方向还没有被传达给应用程序委托。最令人困惑的......看起来我需要重组一些东西:-(
    【解决方案2】:

    这是一个对我有用的快速解决方案:

    if UIDevice.current.orientation.isFlat { //do something }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多