6

我正在为 iphone 创建一个益智游戏。我所有的菜单等都是纵向的,但我的游戏可以纵向或横向。

因此,当我在菜单中并且设备处于横向状态时,当我进入游戏视图控制器时,它会使用横向坐标进行布局,但屏幕实际上仍然是纵向的:

在此处输入图像描述

我想在布局之前强制设备重新定位屏幕。我怎么做?

现在我正在测试这样的设备方向:

- (void) viewDidLoad {
    .
    .
    .

   if (!UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) {
      // Run Portrait Layout
   }
   else {
      // Run Landscape Layout
   }
}

所以我知道设备正在返回横向的方向,但由于某种原因屏幕仍然是纵向的。

4

2 回答 2

18

也许尝试..

[UIViewController attemptRotationToDeviceOrientation];

viewDidLoadorviewWillAppear中,这应该使它尝试改变方向

于 2012-07-11T05:06:16.790 回答
1

UIViewController 中有一些方法可以重写以捕获 view-did-rotate 事件:

– willRotateToInterfaceOrientation:duration:
– willAnimateRotationToInterfaceOrientation:duration:
– didRotateFromInterfaceOrientation:

请检查UIViewController 类参考

于 2012-07-11T05:26:26.133 回答