我有一个以横向模式创建的视图(旋转后很长时间等) 在这个视图中,我想找到一个相对于主窗口的点 以下代码在纵向模式下工作,但在landscappe中,它仍然返回值,就好像它是纵向模式一样。
CGPoint ptRelativeToWindow = [self convertPoint:self.bounds.origin toView:nil];
解决
这解决了问题并提供了正确的坐标:
[self convertPoint:self.bounds.origin toView:[UIApplication sharedApplication].keyWindow.rootViewController.view];
答案 0 :(得分:15)
您无法使用主窗口计算相对坐标。主窗口接收旋转事件并将它们传递到控制器上,这意味着它不会改变尺寸本身(总是具有相同的纵向边界)。这就是为什么您找到的解决方案有意义:您找到相对于根控制器视图的坐标,该坐标确实接收旋转事件并相应地更改其大小