iOS8的触摸位置在横向上是有限的,好像窗口是纵向的一边?

Rob*_*Rob 13 window touch orientation ios ios8

iOS8中我遇到了一个奇怪的问题.我一直在谷歌上搜索,并在墙上砸了几天没有运气.我不太确定如何解释它,但是这里......

应用程序在iOS7下运行良好,但现在使用xCode 6/iOS8编译我有一些奇怪的方向问题.我没有使用xib文件,而是以编程方式创建窗口和视图.我在视图中运行OpenGL,然后在OpenGL中处理其他所有内容.所以,我正在收集接触并将它们传递给我的GL例程.一切都很好,直到现在.

现在使用iOS8,似乎"触摸窗口"正在自行旋转,以便横向中的触摸仅限于屏幕的一侧,就好像显示窗口是横向,但触摸都在设置为在屏幕的一侧.

看起来很奇怪的是,触摸按照正常情况进入整个屏幕的视图,但Y值在320处停止并且不再进一步.X正常行动.如果我将设备转为纵向(视图控制器不会自动旋转),它一切正常,但在横向中它会切换到这种奇怪的行为.

我已经尝试了所有我能想到的,没有任何改变,我不知道从哪里开始解决为什么会发生这种情况.任何建议将不胜感激.

Joh*_*alo 0

我的猜测是,由于以下一个(或多个)原因,拥有手势识别器的任何视图在旋转期间都不会调整大小:

  • 它使用自动布局并且不固定到其超级视图
  • 它使用弹簧和支柱,并且没有正确的 UIViewAutoresizing mask
  • 它位于未调整大小的子视图中

如果您使用自动布局,请在视图控制器中尝试以下操作:

- (void)viewDidLayoutSubviews
{
  // For each subview with its own auto layout:
  [self.mySubview layoutSubviews];

  // ...

  [super viewDidLayoutSubviews];
}
Run Code Online (Sandbox Code Playgroud)