Подтвердить что ты не робот

Добавить баннер UIView выше строки состояния iOS 7

Я пытаюсь добавить баннер над панелью состояния при получении уведомления о входе в приложении. Из того, что я читал, кажется, что единственный способ динамического изменения стиля строки состояния в iOS 7 - установить UIViewControllerBasedStatusBarAppearance на NO. Это не только очень надоедает, чтобы изменить все мои различные контроллеры представлений prefersStatusBarHidden на [UIApplication sharedApplication].statusBarHidden, но это также не дает эффекта, который я ищу.

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

В основном я ищу для этого:

Facebook Messenger push banner

4b9b3361

Ответ 1

Создайте новое окно и добавьте его в это окно. Когда вам нужно показать баннер, вы можете установить yourwindow.hidden = NO;. Вы можете добавить анимацию, чтобы показать ее, и отклонить ее yourwindow.hidden = YES;.

Ключевым здесь является установка yourwindow.windowLevel = UIWindowLevelStatusBar+1;

Это позволит убедиться, что ваш баннер и yourwindow всегда отображаются над строкой состояния.

Не стесняйтесь задавать вопросы по любому из вышеперечисленных.

Ответ 2

Чтобы поставить контроллер просмотра выше строки состояния:

[[[[UIApplication sharedApplication] delegate] window] setWindowLevel:UIWindowLevelStatusBar+1];

Чтобы поставить контроллер просмотра на строку состояния:

[[[[UIApplication sharedApplication] delegate] window] setWindowLevel:UIWindowLevelNormal];