Как скрыть строку состояния в iOS?
Я могу скрыть строку состояния в моем приложении:
- (void)viewDidLoad{
[[UIApplication sharedApplication] setStatusBarHidden:YES];
[super viewDidLoad];
}
когда я выбрал изображение запуска и запустил его в первый раз, это строка состояния над изображением. Как я могу это скрыть?
15 ответов
добавьте следующий код в контроллер вида:
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
// iOS 7
[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
} else {
// iOS 6
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
}
- (BOOL)prefersStatusBarHidden {
return YES;
}
вам нужно добавить этот код в файл AppDelegate, а не в корневой контроллер вида
или добавить свойство строка состояния изначально скрыта в вашем файле plist
ребята, в iOS 7+
пожалуйста, добавьте это к вашей информации.plist файл, это будет иметь значение:)
UIStatusBarHidden UIViewControllerBasedStatusBarAppearance
для iOS 11.4+ и Xcode 9.4 +
используйте этот код либо в одном, либо во всех контроллерах вида
переопределить var prefersStatusBarHidden: Bool { вернуть true }
Что мне помогло это (изменение файла plist):
- set строка состояния изначально скрыта = YES
- добавить строку: вид контроллера на основе строки состояния внешний вид = нет
поместите этот код в контроллер вида, в котором вы скрываете строку состояния:
- (BOOL)prefersStatusBarHidden {return YES;}
в iOS 7 внешний вид строки состояния зависит от UIViewController
по умолчанию. Чтобы скрыть строку состояния глобально, в info.plist
использовать NO
значение UIViewControllerBasedStatusBarAppearance
ключ и использовать UIApplication
' s setStatusBarHidden
метод YES
BOOL
значение.
добавьте этот ключ из выпадающего списка в " info.plist " и вуаля вы больше не увидите верхнюю панель,которая включает в себя элементы, такие как GSM, wifi значок и т.д.
на info.plist
View controller-based status bar appearance NO
Status bar is initially hidden YES
на view controller.m
- (BOOL) prefersStatusBarHidden
{
return YES;
}
Я поддерживаю iOS 5, 6 и 7. Мое приложение только для iPad. Мне нужно было использовать все следующее:
[[UIApplication sharedApplication] setStatusBarHidden:YES];
Контроллер Вид:
- (BOOL)prefersStatusBarHidden{ return YES; }
информация.файл plist
<key>UIStatusBarHidden</key>
<string>YES</string>
<key>UIStatusBarHidden~ipad</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<string>NO</string>
это работает для меня ,
пожалуйста, добавьте ниже код в инфо.plist file,
<key>UIStatusBarHidden</key>
<false/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
надеется, что это работа для кого-то .
просто установите флажок в Targets / Summary iPad Deployment Info, и строка состояния исчезнет. Он работает в моих приложениях.
у меня была такая же проблема, но ее легко исправить! Просто установите
status bar is initially hidden = YES
затем добавьте строку, нажав на плюс сразу после текста status bar is initially hidden
, затем установите текст в
view controller-based status bar appearance
, нажав стрелки, и установите его в NO
надеюсь, что это помогает!
ну, самый простой способ, которым я это делаю, - это ввести следующее .m-файл.
- (BOOL) prefersStatusBarHidden
{
return YES;
}
Это должно работать!
-(void) viewWillAppear:(BOOL)animated
{
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
}
полное решение в swift, в вашем контроллере вида
// you can use your own logic to determine if you need to hide status bar
// I just put a var here for now
var hideStatusBar = false
override func preferStatusBarHidden() -> Bool {
return hideStatus
}
// in other method to manually toggle status bar
func updateUI() {
hideStatusBar = true
// call this method to update status bar
prefersStatusBarHidden()
}
чтобы скрыть строку состояния для каждого отдельного контроллера вида программно, используйте любую из следующих двух процедур:
процедура 1:
[[UIApplication sharedApplication] setStatusBarHidden: YES withAnimation: UIStatusBarAnimationNone];
процедура 2:
- (BOOL)prefersStatusBarHidden {
return YES;
}
скрыть строку состояния для всего приложения, мы должны следовать приведенной ниже процедура:
вы должны добавить это значение в plist: "просмотр внешнего вида строки состояния на основе контроллера" и установить его в "НЕТ".