【问题标题】:touchesBegan only fired within 768x768 pixel rectangletouchesBegan 仅在 768x768 像素矩形内触发
【发布时间】:2012-12-10 18:14:17
【问题描述】:

我的 iPad 应用程序在模拟器(5.1 和 6.0)和我的设备(运行 iOS6.0 的 iPad2)上都出现了奇怪的行为。无论应用程序从哪个方向开始,touchesBegan 仅在区域 (0,0) - (767,767) 中的新触摸时触发 - 在纵向模式下,屏幕底部不响应,在右侧横向。 但是,touchesMovedtouchesEnded 在整个显示器上工作 - 如果我触摸并拖动到“损坏”区域,则会收到触摸释放事件。

我进一步指出,虽然在 iOS 6 模拟器上我的应用程序 看起来 正确,即使它不能正常工作,但在 iOS 5.1 模拟器上,渲染也是最初也有点混乱:

整个显示应该是灰色的,并且右下角带有滑块的框。再一次,768 似乎是这里的神奇值。旋转几次可以解决此渲染问题,但不能解决输入问题...以纵向模式开始并旋转 180 度,现在看起来正确,但顶部停止响应,而不是底部。

这里使用了一个 3rd-partly 库,所以我的主要问题是 什么可能导致这种问题,我应该寻找什么?我也很好奇为什么两个模拟器给出不同的结果

【问题讨论】:

    标签: ios touch ogre


    【解决方案1】:

    如果您是touchesBegantouchesMovedtouchesEnded 都在您的self.view 内寻找一个位置,那么您可能不在正确的框架区域以接收触摸。我刚刚遇到了类似的问题,我使用以下方法明确更改了框架的大小:

    self.view.frame = CGRectMake(0,0,1024,1536);
    

    因为我的游戏有两个屏幕高。重新调整帧大小后,touchesBegan 工作正常。希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-12
      相关资源
      最近更新 更多