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

Egi*_*gil 34 iphone cocoa-touch objective-c

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

CGPoint ptRelativeToWindow = [self convertPoint:self.bounds.origin toView:nil];
Run Code Online (Sandbox Code Playgroud)

解决了

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

[self convertPoint:self.bounds.origin toView:[UIApplication sharedApplication].keyWindow.rootViewController.view];
Run Code Online (Sandbox Code Playgroud)

Nic*_*ick 15

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