convertPoint: toView: в ландшафтном режиме, давая неправильные значения - PullRequest
34 голосов
/ 23 июня 2011

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

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

Решено

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

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

1 Ответ

15 голосов
/ 16 сентября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...