【问题标题】:Touch controls working for iOS 7,6,5... but not for iOS 8适用于 iOS 7、6、5 的触摸控件...但不适用于 iOS 8
【发布时间】:2026-01-06 03:50:01
【问题描述】:

几年前我开发了一个 OpenGL ES 游戏,直到现在都运行良好:我在我的 iPad 3 中下载了 Xcode 6 和 iOS 8,而触控(touchesBegan、touchesMoved、touchesEnded)只检测到一个 768x768 点的正方形,而不是1024x768。

256 点 (1024-768) 的边距不响应脉动。

游戏处于横向模式。

触摸控制似乎认为 iPad 处于纵向模式而不是横向模式。视觉上它是横向的。

看起来像 iOS 8 中的一个错误。

【问题讨论】:

  • 我也有同样的问题。
  • 我也有这个问题,虽然在 iPhone 6 上测试限制区域是 640x640。它似乎只影响 touchesBegan 触摸 - 一旦触摸转换为 touchesMoved,x 坐标就会正确返回。
  • 我有同样的问题,iPhone 6,OpenGL ES,帧边界是 736x414 横向模式。 touchesBegan 给我 X 不超过 414,但 Y 返回正确。 touchesMoved 工作正常,X 范围从 0 到 736。

标签: ios opengl-es touch touchesbegan touchesmoved


【解决方案1】:

如果有人还在处理这个问题,终于弄清楚了 - 看起来 iOS 8 在将 UIView 直接添加到应用程序委托的窗口时会导致一些问题。我必须创建一个 UIViewController,将 UIView 添加到其中,然后使其成为根视图控制器。

【讨论】: