我有一个在横向模式下创建的 View (旋转后很长时间等)。
在此 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 - convertPoint:toView:在横向模式下给出错误的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6452716/