Поповер изменяет размер ошибочно - PullRequest
0 голосов
/ 20 ноября 2010

У меня есть UITabBarController внутри UIPopoverController, который я отображаю исключительно из одного UIBarButtonItem. Когда показано, я хочу, чтобы поповер занимал максимально допустимую высоту по вертикали. Это работает нормально, если я коснусь, чтобы отобразить его, затем отклонить, а затем повернуть. Однако если всплывающее окно отображается в альбомной ориентации, а затем повернуто в портретную ориентацию, оно больше не будет заполнять все вертикальное расстояние. У меня есть свойство размера содержимого контроллера панели вкладок, равное 320 на 1000, и я даже пытался сбросить его каждый раз, когда устройство поворачивается. Хуже того, когда пользователь активирует панель поиска, всплывающее окно уменьшается до минимума и остается таким до тех пор, пока приложение не будет перезапущено.

http://cl.ly/3JdC до http://cl.ly/3JdC

Также http://cl.ly/3JVF

Как я могу остановить это, и чтобы поповер всегда заполнял максимальный вертикальный размер?

1 Ответ

1 голос
/ 07 декабря 2010

У меня была такая же проблема, и я обнаружил, что это происходит только тогда, когда я представляю UIPopoverController, используя метод:

- (void)presentPopoverFromBarButtonItem:(UIBarButtonItem *)item permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated

но он отлично работает, когда я использую:

- (void)presentPopoverFromRect:(CGRect)rect inView:(UIView *)view permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated

К сожалению, UIBarButtonItem не имеет фрейма Rect, который вы можете использовать с этим последним методом, поэтому я решил использовать фрейм UIToolbar и соответственно изменить frame.origin.x и frame.size.width, чтобы всплывающее окно появилось на правильное место рядом с UIBarButtonItem.

Надеюсь, Apple исправит это в следующих выпусках iOS.

Привет

...