我正在iOS上创建一个使用加速度计的cocos2d游戏。我刚开始在iPhone5上测试,出于某种原因,它颠倒了加速度计的数据--基本上,它的行为就像屏幕方向与实际方向翻转了180度,向下倾斜导致它向上发送东西,向左倾斜导致向右移动等等。
它在运行iOS 5的iPhone4上运行良好,在运行iOS 5的ipad和运行iOS 6的ipad上都能正常工作。我不确定是只有iphone5还是所有运行iOS 6的iphone都有问题。
我在网上找不到任何关于这个问题的提法,我想知道是否有人遇到了这个问题,你是否知道一个解决方案。
发布于 2012-10-01 02:08:04
好了,我知道是怎么回事了。在iOS 6中,不推荐使用willRotateToInterfaceOrientation方法,并且不再调用该方法。我在其中编写了代码来做两件事-检测手机加载到哪个横向并相应地调整变量,以及防止手机在玩游戏时翻转方向(这是一款倾斜移动游戏)。之所以一切都表现得好像视图颠倒了一样,是因为它是颠倒的,而且手机的方向被锁定了,而我用于纠正这种情况的代码没有被调用。Here's what Apple says about willRotateToInterfaceOrientation
完成willRotateToInterfaceOrientation:duration:,willAnimateRotationToInterfaceOrientation:duration:,
didRotateFromInterfaceOrientation:方法不再在任何在其自身上进行全屏呈现的视图控制器上调用-例如,通过调用presentViewController:动画:完成:。您应该确保您的应用程序没有使用这些方法来管理任何子视图的布局。相反,它们应该使用视图控制器的viewWillLayoutSubviews方法,并使用视图的边界矩形调整布局。
现在我只需要弄清楚如何使用willLayoutSubviews方法来复制我原来的功能。
https://stackoverflow.com/questions/12645943
复制相似问题