1

所以今天我为我的应用程序实现了横向模式。这是一个opengl es应用程序。我将它旋转了 90 度。我注意到的第一件事是触摸不再起作用。原因是对 locationInView 的调用仍然提供坐标,就好像应用程序处于纵向模式一样。

人们通常如何处理这个问题?我是否必须编写自己的 locationInView 版本才能考虑手机的方向?或者,还有更好的方法?

4

2 回答 2

2

这是默认行为。无论 iPhone 是纵向还是横向,屏幕坐标都不会改变,因此您需要在您的应用程序中进行调整。

于 2009-12-22T22:29:16.617 回答
1

基本上有两种方法,每种方法都有自己的缺点/资产。

  1. 您可以将您的 GLview 附加到视图控制器并让它处理旋转事件并将窗口坐标转换为“视图”坐标。这是最简单的方法,但您的绘图性能可能会受到影响。

  2. 自己管理轮换。您需要添加自己的方法来处理由 UIDeviceOrientationDidChangeNotification 通知驱动的旋转。此方法应包括用于旋转矩阵、平移触摸等的 GL 命令。

于 2010-09-20T02:53:55.717 回答