我在我的iPad应用程序模拟器(5.1和6.0)和我的设备(运行iOS6.0的iPad2)上看到了奇怪的行为。无论应用程序的起始位置如何,touchesBegan
仅针对区域中的新触摸(0,0) - (767,767)触发 - 在纵向模式下,屏幕底部不响应,在右侧横向。
但是,touchesMoved
& touchesEnded
在整个显示屏上工作 - 如果我触摸并拖动到“已损坏”区域,则会收到触摸释放事件。
我进一步注意到,在iOS 6 模拟器上,我的应用程序看起来正确,即使它无法正常工作,在iOS 5.1模拟器上渲染也是有点搞砸了:
整个显示屏应为灰色,右下角有滑块。再次,768似乎是这里的神奇价值。旋转几次修复了这个渲染问题但不是输入问题...以纵向模式开始并旋转180度现在看起来正确但顶部停止响应而不是底部。
这里使用的是第3部分库,所以我的主要问题是可能导致这类问题的原因,我应该寻找什么?我也很好奇为什么这两个模拟器给出了不同的结果
答案 0 :(得分:0)
如果您touchesBegan
,touchesMoved
和touchesEnded
所有人都在self.view
内寻找位置,那么您可能不在正确的框架区域内要接受的接触。我只是遇到了类似的问题,我使用以下方法明确改变了框架的大小:
self.view.frame = CGRectMake(0,0,1024,1536);
因为我的游戏是两个屏幕高。重新调整帧大小后,touchesBegan
工作正常。希望这有帮助!