как скрыть строку состояния, когда в 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
user2588945
источник
1

Добавить Status bar is initially hiddenв YESв info.plistфайле. Это сработало для меня.

строка состояния скрыта

Винот Вино
источник
0

Для редакторов XML ~ добавить к первому дочернему элементу

<key>UIStatusBarHidden</key>
<true/>
Пол Брючинский
источник