2

我已经实现了 shouldAutorotateToInterfaceOrientation 并且在我的应用程序运行后一切正常或方向变化。但是,我不喜欢我的应用程序首次启动时的行为。

当我以纵向启动我的应用程序时,它会按预期打开,但是当我以横向启动我的应用程序时,我看到所有内容都以纵向加载(包括状态栏),然后我看到我的屏幕旋转到横向的动画。该动画很好,但我不希望它在启动时显示。

当我查看大多数其他应用程序时,它们似乎在启动时检测到方向,并且在启动时不显示旋转动画(仅当设备在启动时间后旋转时)。

如何确保我的应用程序以正确的方向加载,以便用户在启动时看不到旋转动画。如果用户仅在启动后旋转设备时才看到旋转动画,我会更喜欢它。

4

2 回答 2

5

好吧,我想我明白了。对于从 iPhone 模板创建应用程序然后为 iPad 修改它的任何人,您需要在 -info.plist 文件中添加一行显示“支持的界面方向”并输入所有支持的方向,如下所示。然后它似乎按预期工作。

    <key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationPortraitUpsideDown</string>
    <string>UIInterfaceOrientationLandscapeLeft</string>
    <string>UIInterfaceOrientationLandscapeRight</string>
</array>
于 2010-12-14T18:58:38.690 回答
0

我在我的应用程序中做了这样的事情:

if ([[UIDevice currentDevice] orientation]==UIInterfaceOrientationLandscapeRight){
  [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight];
}else if ([[UIDevice currentDevice] orientation]==UIInterfaceOrientationLandscapeLeft){
  [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft];
}

简单地说:在开始时检测方向,然后将 StatusBarOrientation 设置为该值。如果您在加载视图之前执行此操作(或者至少,在您的应用程序结构中尽可能早),状态栏应该从右侧开始出现(因此不需要旋转)。如果您还想支持纵向,只需为它们添加另外 2 个其他叉子...

于 2010-12-14T06:43:27.163 回答