我有一个在横向模式下创建的 View (在旋转等很久之后)。
在这个 View 中,我想找到一个相对于主窗口的点。
以下代码在纵向模式下工作,但在横向模式下它仍然返回值,就好像它在纵向模式下一样。
CGPoint ptRelativeToWindow = [self convertPoint:self.bounds.origin toView:nil];
已解决
这解决了问题并给出了正确的坐标:
[self convertPoint:self.bounds.origin toView:[UIApplication sharedApplication].keyWindow.rootViewController.view];
最佳答案
您不能使用主窗口计算相对坐标。主窗口接收旋转事件并将它们传递给 Controller ,这意味着它本身不会改变大小(始终具有相同的纵向边界)。这就是为什么您找到的解决方案有意义:您找到相对于根 Controller View 的坐标,该 Controller 确实接收旋转事件并相应地更改其大小
关于iphone - 转换点 :toView: in landscape mode giving wrong values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6452716/