ротация поповера - PullRequest
       8

ротация поповера

1 голос
/ 09 августа 2011

Я создал приложение для iPad, и оно отлично работает в альбомной и портретной ориентации. За исключением случаев, когда приложение поворачивается в горизонтальной плоскости, поповер позиционируется неправильно. Есть ли способ добавить оператор if, например псевдокод:

if in portrait CGRect
    use size S1 location L1
else if in landscape CGRect
    use size S2 location L2

Мой код:

UIPopoverController* popover = [[UIPopoverController alloc] initWithContentViewController:TweetFeed];
[popover setDelegate:self];
[popover presentPopoverFromRect:CGRectMake(401, 401, 220, 300) inView:self.view  permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];
[popover setPopoverContentSize:CGSizeMake(320, 150)];

1 Ответ

0 голосов
/ 30 октября 2012

Документация Apple для UIPopoverController решает эту проблему:

Если пользователь поворачивает устройство, когда всплывающее окно видно, контроллер всплывающего окна скрывает всплывающее окно и затем показывает его снова в конце поворота. Контроллер всплывающих окон пытается расположить поповер надлежащим образом для вас, но вам, возможно, придется представить его снова или скрыть его в некоторых случаях. Например, при отображении из элемента панели кнопок контроллер поповер автоматически регулирует положение (и, возможно, размер) панели для учета изменений в положении элемента кнопки панели. Тем не менее, если вы удалите элемент панели кнопок во время поворота, или если вы представили поповер из целевого прямоугольника на виде, контроллер поповер не будет пытаться переместить поповер. В этих случаях вы должны вручную скрыть всплывающее окно или снова представить его из соответствующей новой позиции. Вы можете сделать это в didRotateFromInterfaceOrientation: метод контроллера представления, который вы использовали для представления всплывающего окна.

...