Как узнать, когда изменился размер StatusBar (iPhone) - PullRequest
3 голосов
/ 29 марта 2010

У меня есть UITabBarController с 2 вкладками . При изменении размера StatusBar размер изменяется очень хорошо (эмулятор «Toggle In-Call Status Bar»). Другой нет.

Проблемный элемент вкладки содержит статическое представление, которое динамически загружает одно или другое представление в зависимости от определенных вещей. Во время работы этой настройки я обнаружил, что основной вид вкладки НЕ отправлял автоматически, например. сообщения viewWillAppear и viewWillDisappear для моих динамических подпредставлений.

Документы Apple объяснили это тем, что динамически добавленные представления не были распознаны системой.

@interface MyTabViewController : UIViewController
{
    UIView *mainView;
    FirstViewController *aController;
    SecondViewController *bController;
}
...
if (index == 0)
{
    self.aController = [[FirstViewController alloc]
        initWithNibName:@"FirstViewController" bundle:nil];            
    [self.mainView addSubview:aController.view];
    [self.aController viewWillAppear:YES];
}

Как я могу получить Событие изменения размера StatusBar в моих динамических подпредставлениях? «DidChangeStatusBarFrame» не работает, как описано в другом месте.

Ответы [ 3 ]

0 голосов
/ 28 ноября 2010

Вы можете запрограммировать изменение размера самостоятельно, но обычно это делается с помощью «маски автоматического изменения размера». (UIView имеет свойство autoresizingMask).

0 голосов
/ 29 февраля 2012

Я не уверен в этом, но так как вы добавляли эти представления программно, возможно, вы забыли установить маску автоматического изменения размера. Без этого представление не изменится автоматически при изменении фрейма строки состояния.

[newView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleWidth];

Надеюсь, это поможет.

0 голосов
/ 28 ноября 2010

Вы смотрели на этот вопрос ?

Кроме того, можем ли мы увидеть ваш код делегата приложения, используя application:didChangeStatusBarFrame:?

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