как скрыть строку состояния, когда в iphone появляется заставка?


85

Есть ли способ скрыть строку состояния при отображении экрана-заставки на iPhone, а затем снова отобразить в приложении?

Ответы:


191

Я почти уверен, что если в вашем файле Info.plist установлено Status bar is initially hiddenзначение YES, оно не будет отображаться, пока ваше приложение загружается. После загрузки приложения вы можете повторно показать строку состояния с помощью setStatusBarHidden:animated:метода UIApplication .


1
в info.plist нет такой опции. есть ли способ добавить ее вручную
Рахул Вьяс

3
@Rahul выберите последнюю строку в файле, а затем нажмите кнопку с плюсом на правом конце строки. Затем введите его сами.
Дэйв Делонг,

2
Метод повторного отображения строки состояния сейчас, setStatusBarHidden: withAnimation:
SargeATM

2
Если вы хотите добавить его вручную, вы можете отредактировать список в текстовом редакторе, например BBEdit, и добавить строки: <key> UIStatusBarHidden </key> <true /> чуть выше строки </dict>. Или в Xcode щелкните правой кнопкой мыши список и выберите «Открыть как ... Исходный код» и отредактируйте его как текст.
JScarry 07

9
«Как только ваше приложение загрузится, вы можете повторно показать строку состояния» Чтобы прояснить, если кто-то запутался, можно безопасно установить [[UIApplication sharedApplication] setStatusBarHidden:NO];- application: didFinishLaunchingWithOptions:
Ryan

48

Правильный ключ в .plist - "UIStatusBarHidden" и отметьте его справа. Затем он автоматически станет "Строка состояния изначально скрыта". В моей практике вы можете управлять отображением / скрытием StatusBar где угодно с помощью when hide:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO];
[UIApplication sharedApplication].keyWindow.frame=CGRectMake(0, 0, 320, 480); //full screen.

когда показывают:

[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO];
[UIApplication sharedApplication].keyWindow.frame=CGRectMake(0, 20, 320, 460); //move down 20px.

надеюсь, что это было полезно для вас.


Чтобы динамически установить размер CGRectMake для любого типа iPhone: [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO]; float width = ((UIScreen *)[UIScreen mainScreen]).bounds.size.width; float height = (((UIScreen *)[UIScreen mainScreen]).bounds.size.height - 20); [UIApplication sharedApplication].keyWindow.frame = CGRectMake(0, 20, width, height);
reinaldoluckman

UIApplication setStatusBarHidden:withAnimationожидает определение типа NSInteger UIStatusBarAnimationдля второго аргумента, а не BOOL. Вместо NO, используйтеUIStatusBarAnimationNone
пользователь

23

Просмотр -> Тип списка свойств -> iPhone Info.plist. Теперь создайте новый элемент с установленным флажком «Строка состояния изначально скрыта».


6

Следуя ответу Дейва, клавиша «Строка состояния изначально скрыта» не работала для меня под iOS 4.3, НО клавиша «UIStatusBarHidden», а затем установка его типа на Boolean и установка флажка сделали трюк.

http://developer.apple.com/library/ios/#documentation/general/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html#//apple_ref/doc/uid/TP40009254-SW4

Эта статья разработчика познакомила меня с ключами Info.plist, а затем разработать эквивалентный ключ для их сокрытия было несложно.

Интересно, что «UIStatusBarStyle» должен использовать имя перечисления как строку, чтобы оно работало.


6

Для Xcode 5 и выше вы можете просто установить:

Просмотр отображения строки состояния на основе контроллера на НЕТ

В вашем info.plist или на вкладке информации в вашем основном проекте.

Пример настроек информации в xcode


3

напишите эту 1 строку в свой основной метод .m viewDidload

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO];

или выберите файл info.plist из папки вспомогательных файлов вашего проекта в рабочей области

установите statusbarinitialyhidden на ДА


2

не рекомендуется

setStatusBarHidden:(BOOL) animated:(BOOL) 

это правильный

setStatusBarHidden:(BOOL) withAnimation:(UIStatusBarAnimation)

UIStatusBarAnimation, который может быть:

UIStatusBarAnimationNone или UIStatusBarAnimationFade или UIStatusBarAnimationSlide


1

Это сработало для меня в info.plist:

"View controller-based status bar appearance"  -> set to NO


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.