convertPoint:toView:在横向模式下给出错误的值

时间:2011-06-23 10:40:08

标签: iphone objective-c cocoa-touch

我有一个以横向模式创建的视图(旋转后很长时间等) 在这个视图中,我想找到一个相对于主窗口的点 以下代码在纵向模式下工作,但在landscappe中,它仍然返回值,就好像它是纵向模式一样。

CGPoint ptRelativeToWindow = [self convertPoint:self.bounds.origin toView:nil];

解决

这解决了问题并提供了正确的坐标:

[self convertPoint:self.bounds.origin toView:[UIApplication sharedApplication].keyWindow.rootViewController.view];

1 个答案:

答案 0 :(得分:15)

您无法使用主窗口计算相对坐标。主窗口接收旋转事件并将它们传递到控制器上,这意味着它不会改变尺寸本身(总是具有相同的纵向边界)。这就是为什么您找到的解决方案有意义:您找到相对于根控制器视图的坐标,该坐标确实接收旋转事件并相应地更改其大小