在app委托中出现平面问题时的iPad发布方向

时间:2010-07-10 22:01:28

标签: ipad delegates startup orientation

和很多人一样,我有一个动画屏幕可以动画显示我应用的第一个视图。我一直在为iPad重新设计这个,如果你在纵向或横向模式下持有设备,一切都按预期工作,使用正确的默认图像,使用正确的图像用于动画关闭,所有方向都有效细

BUT

如果我将设备置于横向模式,然后将其平放在桌面上,则出现问题。使用了正确的启动画面,但是用于为其设置动画的图像是错误的,我已将此跟踪到以下代码,该代码返回5 - 即没有像往返的肖像画面/肖像/ landscapeleft / landscaperight模式。

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

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

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

2 个答案:

答案 0 :(得分:4)

UIInterfaceOrientationUIDeviceOrientation的子集。如果UIDeviceOrientationIsValidInterfaceOrientation为false,那么您通常可以假设UIInterfaceOrientationPortrait。除了检查设备方向外,您还可以检查statusBarOrientation的{​​{1}},但在启动时它也可能没有有效值。

答案 1 :(得分:0)

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

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