UIView фрейм, когда существуют панель навигации и контроллер панели вкладок - PullRequest
6 голосов
/ 11 сентября 2010

Я создаю UIView программно в loadView . В приложении есть UITabBarController и UINavigationController.

Как мне создать представление, которое автоматически изменяет размер , когда существуют панель вкладок и панель навигации?

Мой текущий подход к этой проблеме - вычисление высот контроллеров панели навигации и панели вкладок и вычитание их из высоты главного экрана:

float navObjectsHeight = self.tabBarController.tabBar.frame.size.height 
    + self.navigationController.navigationBar.frame.size.height;

CGRect mainFrame = CGRectMake(0, 0, screenFrame.size.width, 
  screenFrame.size.height - navObjectsHeight);

UIView *contentWrapper = [[UIView alloc] initWithFrame:mainFrame];

1 Ответ

5 голосов
/ 11 сентября 2010

У UIView есть свойство обрабатывать эту ситуацию. Когда вы создаете его программно, используйте следующий код:

UIView *aView = [[UIView alloc] init];
aView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
...