ConvertPoint: toView: в ландшафтном режиме, давая неправильные значения

У меня есть представление, которое создается в ландшафтном режиме (долго после вращения и т.д.).
В этом представлении я хочу найти точку относительно главного окна.
Следующий код работает в портретном режиме, но в landscappe он все равно возвращает значения, как если бы они были в портрете.

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

решаемые

Это решило проблему и дает правильные координаты:

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

Ответ 1

Вы не можете использовать главное окно для вычисления относительных координат. Главное окно принимает события вращения и передает их на контроллеры, что означает, что он не изменяет сам размер (всегда имеет одинаковые границы портрета). Вот почему решение, которое вы нашли, имеет смысл: вы находите координаты относительно вида корневого контроллера, который принимает события вращения и соответственно меняет свой размер.