1

我正在使用加速度计的 iOS 上创建 cocos2d 游戏。我刚开始在 iphone 5 上进行测试,出于某种原因,它正在反转加速度计数据 - 基本上它的行为就像屏幕方向与实际情况翻转 180 度一样,向下倾斜会导致它向上发送东西,向左向右等.

它在运行 iOS 5 的 iphone 4 以及运行 iOS 5 的 ipad 和运行 iOS 6 的 ipad 上都可以正常工作。不确定这是仅 iphone 5 还是所有运行 iOS 6 的 iphone 的问题。

我在网上找不到任何关于此问题的提及,想知道是否有其他人遇到此问题以及您是否知道解决方案。

4

1 回答 1

0

好的,我知道发生了什么。在 iOS 6 中,willRotateToInterfaceOrientation 方法已被弃用,不再被调用。我在那里有代码做两件事 - 检测手机正在加载的横向方向并相应地调整变量,并防止手机在游戏过程中翻转方向(这是一个倾斜移动游戏)。一切都表现得好像视图颠倒的原因是因为它是,并且手机的方向被锁定,并且我的代码没有被调用来纠正这个问题。 以下是 Apple 对 willRotateToInterfaceOrientation 的评价

willRotateToInterfaceOrientation:duration:、willAnimateRotationToInterfaceOrientation:duration: 和 didRotateFromInterfaceOrientation: 方法不再在任何对其自身进行全屏呈现的视图控制器上调用——例如,通过调用 presentViewController:animated:completion:。您应该确保您的应用程序没有使用这些方法来管理任何子视图的布局。相反,他们应该使用视图控制器的 viewWillLayoutSubviews 方法并使用视图的边界矩形调整布局。

现在我只需要弄清楚如何使用 willLayoutSubviews 方法来复制我的原始功能。

于 2012-09-30T18:08:03.750 回答