Как вы получаете доступные границы внутри UITabBarController - PullRequest
3 голосов
/ 02 марта 2009

Когда вы используете UITabBarController, как вы получаете размер панели вкладок внизу? Точно так же, как вы узнаете, сколько места у вас есть внутри просмотра вкладок для вашего контента? Я вижу множество примеров того, как люди изменяют размер дочерних представлений вкладок на [[UIScreen mainScreen] applicationFrame], что не может быть правильным, поскольку панель вкладок занимает некоторое пространство в нижней части экрана.

Кроме того, возможно ли изменить размер панели вкладок?

Спасибо Райан

Ответы [ 3 ]

1 голос
/ 17 апреля 2012

Старый вопрос, но все равно:

Если вы не загружаете свой вид из NIB, установите флаги автоматического изменения размера в функции loadView; как то так:

self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight |
                             UIViewAutoresizingFlexibleWidth;

Если вы это сделаете, вы можете использовать [[UIScreen mainScreen] applicationFrame], чтобы указать рамку вашего представления; он будет изменен автоматически при наличии панели вкладок.

Если у вас есть NIB для представления, autoresizingMask автоматически устанавливается Interface Builder.

Markus

0 голосов
/ 03 марта 2009

Причина, по которой вы можете использовать applicationFrame, заключается в том, что UITabBarController изменяет размеры представлений своих субконтроллеров, поэтому, пока ваше представление поддерживает правильное изменение размера, все будет работать.

Вы можете получить размер панели вкладок, открыв свойство tabBar контроллера панели вкладок и посмотрев на его рамку. Общий размер панели вкладок плюс область для просмотра можно найти, посмотрев на фрейм свойства представления контроллера панели вкладок, поэтому небольшое вычитание даст вам искомое число:

CGFloat myViewHeight = tabBarController.view  .size.height
                     - tabBarController.tabBar.size.height;
0 голосов
/ 02 марта 2009

Если вы можете узнать, как изменить размер UITabBar, то вы можете изменить размер UITabBar UITabBarController. Вы можете получить доступ к объекту, взяв

[[UITabBarController subviews] objectAtIndex:0]

Но в документации рекомендуется не обращаться непосредственно к объекту.

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