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

问题描述

|| 我有一个在横向模式下创建的视图(旋转后很长时间等)。 在此视图中,我想找到一个相对于主窗口的点。 以下代码在纵向模式下有效,但是在横向视图中,它仍然返回值,就像在纵向模式下一样。
CGPoint ptRelativetoWindow = [self convertPoint:self.bounds.origin toView:nil];
解决了 这样就解决了问题,并给出了正确的坐标:
[self convertPoint:self.bounds.origin toView:[UIApplication sharedApplication].keyWindow.rootViewController.view];
    

解决方法

        您不能使用主窗口来计算相对坐标。主窗口接收旋转事件并将其传递给控制器​​,这意味着它本身不会更改大小(始终具有相同的纵向边界)。这就是您找到的解决方案有意义的原因:您找到相对于根控制器视图的坐标,该控制器确实接收旋转事件并相应地更改其大小     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...