2014-09-11 3 views
0

Когда Shazam открывается, строка состояния становится красной и удваивает ее высоту из-за фоновой записи, но это разрушает пользовательский интерфейс в моем приложении. Теперь я пытаюсь изменить свой код, чтобы поддерживать разные размеры строки состояния, потому что красная строка состояния также непрозрачна, но я не могу придумать общее решение из-за этого:iOS 7 красная строка состояния

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

Примечание: мое приложение НЕ использует запись.

[Редактировать]

Единственное решение, которое я нашел в том, чтобы установить «Строка состояния изначально скрыты» ДА в .plist. Мне действительно не нужно, чтобы строка статуса отображалась при запуске приложения, особенно если она влияет на мой образ запуска, когда строка состояния выше, чем обычно, т. Е. При записи или во время телефонного звонка.

[Edit 2]

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

- (BOOL)prefersStatusBarHidden 
{ 
    if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground) 
    { 
     return YES; 
    } 

    return NO; 
} 

Это гарантирует, строка состояния всегда скрыта, когда приложение появляется на передний план, поэтому запуск изображение никогда не будет затронуто. Не забудьте позвонить setNeedsStatusBarAppearanceUpdate по телефону appDidEnterBackground и (внутри блока анимации) по appDidBecomeActive уведомлениям.

+0

Все приложения будут иметь изображения запуска, масштабированные в таком случае. Это ваша единственная проблема? – rmaddy

+0

@maddy Да, и это действительно уродливо. Я не знаю, масштабировано ли оно, но похоже, что часть срезается горизонтально посередине, потому что внизу у меня есть имя приложения, которое по-прежнему выглядит хорошо. –

+0

Это не только красная строка состояния.Это также относится к зеленой строке состояния при обычном телефонном звонке. Ваш единственный вариант - создать образ запуска, который выглядит разумным, когда есть более высокая строка состояния. – rmaddy

ответ

3

Красная строка состояния представляет собой системную функцию. Вы не сможете обойти это - и это не ваша «ошибка», если экран запуска выглядит так: если пользователь хочет открыть ваше приложение при использовании Shazam, он увидит красную полосу и изображение запуска будет масштабироваться. Вы можете изменить изображение запуска, чтобы выглядеть хорошо при масштабировании, но тогда это выглядело бы плохо в остальное время (когда красная полоса не была в верхней части экрана при запуске).

+0

Спасибо за ответ. Действительно, я мог бы каким-то образом изменить изображение, чтобы выглядеть хорошо, когда строка состояния выше, но это будет только половина решения. Вместо этого я предпочел бы сохранить вторую половину решения, т. Е. Изображение, когда высота строки состояния нормальная. –

0

После долго долго долго долго длительных исследований и препятствия, я узнал, простое решение для этого следуют ниже

В Targets-> Общие-> Развертывание Info проверить HideStatusBar Option

, как показано ниже!

enter image description here

И в ViewController (Какой вы держали в RootViewController) в viewDidAppear добавить эту строку кода ...

[[UIApplication sharedApplication] setStatusBarHidden:NO]; 

Потому что, когда вы снимете HideStatusBar Option и ваше приложение нуждается любой фон процесса или звука, тогда строка состояния станет красной с увеличенной высотой. Если вы не хотите, чтобы строка состояния находилась в целом приложении, не добавляйте вышеприведенную строку в viewDidAppear и проверьте параметр HideStatusBar.

Смежные вопросы