Как скрыть строку состояния в iOS?
Я могу скрыть строку состояния в своем приложении:
- (void)viewDidLoad{
[[UIApplication sharedApplication] setStatusBarHidden:YES];
[super viewDidLoad];
}
Когда я выбрал образ запуска и запустил его в первый раз, это строка состояния над изображением. Как я могу скрыть это?
Ответы
Ответ 1
Добавьте следующий код в контроллер вида:
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
// iOS 7
[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
} else {
// iOS 6
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
}
- (BOOL)prefersStatusBarHidden {
return YES;
}
Ответ 2
Вам нужно добавить этот код в файл AppDelegate, а не в контроллер Root View
Или добавьте свойство Строка состояния изначально скрыта в вашем файле plist
![enter image description here]()
Люди, в iOS 7+
пожалуйста, добавьте это в ваш файл info.plist, это будет иметь значение :)
UIStatusBarHidden
UIViewControllerBasedStatusBarAppearance
![enter image description here]()
Для iOS 11. 4+ и Xcode 9.4 +
Используйте этот код в одном или во всех ваших контроллерах вида
переопределить var prefersStatusBarHidden: Bool { вернуть истину}
Ответ 3
Что мне помогло, это (изменение файла plist):
- set Строка состояния изначально скрыта = YES
- добавить строку: Просмотреть статусную строку состояния контроллера = NO
![Hide StatusBar - plist settings]()
Ответ 4
Поместите этот код в контроллер вида, в котором вы скрываете строку состояния:
- (BOOL)prefersStatusBarHidden {return YES;}
Ответ 5
В строке состояния состояния iOS 7 по умолчанию используется UIViewController
. Чтобы скрыть строку состояния глобально, в info.plist
используйте значение NO
для ключа UIViewControllerBasedStatusBarAppearance
и используйте метод UIApplication
setStatusBarHidden
со значением YES
BOOL
.
Ответ 6
добавьте этот ключевой ключ из выпадающего списка в "info.plist" и вуаля, вы больше не увидите верхнюю панель, которая включает элементы, такие как GSM, значок Wi-Fi и т.д.
![enter image description here]()
Ответ 7
Это работает для меня,
Добавьте приведенный ниже код в файл info.plist,
<key>UIStatusBarHidden</key>
<false/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
Надеюсь, что это работа для кого-то.
Ответ 8
В info.plist
View controller-based status bar appearance NO
Status bar is initially hidden YES
В view controller.m
- (BOOL) prefersStatusBarHidden
{
return YES;
}
Ответ 9
Я поддерживаю iOS 5, 6 и 7. Мое приложение - только iPad. Мне нужно было использовать все следующие:
[[UIApplication sharedApplication] setStatusBarHidden:YES];
Контроллер просмотра:
- (BOOL)prefersStatusBarHidden{ return YES; }
Info.plist
<key>UIStatusBarHidden</key>
<string>YES</string>
<key>UIStatusBarHidden~ipad</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<string>NO</string>
Ответ 10
Просто установите флажок в разделе Информация о развертывании iPad/Summary, и строка состояния исчезнет.
Он работает в моих приложениях.
Ответ 11
У меня была такая же проблема, но ее легко исправить! Просто установите
status bar is initially hidden = YES
затем добавьте строку, щелкнув по плюсу сразу после текста status bar is initially hidden
, затем установите текст в
view controller-based status bar appearance
щелкнув стрелки, и установите его на NO
Надеюсь, это поможет!
Ответ 12
Ну, самый простой способ сделать это - ввести следующее в файл .m.
- (BOOL) prefersStatusBarHidden
{
return YES;
}
Это должно сработать!
Ответ 13
-(void) viewWillAppear:(BOOL)animated
{
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
}
Ответ 14
Полное решение в быстром, на ваш взгляд контроллере
// 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()
}
Ответ 15
Чтобы скрыть панель состояния для каждого отдельного контроллера просмотра, используйте любую из следующих двух процедур:
Процедура 1:
[[UIApplication sharedApplication] setStatusBarHidden: YES withAnimation: UIStatusBarAnimationNone];
Процедура 2:
- (BOOL) prefersStatusBarHidden {
return YES;
}
Чтобы скрыть строку состояния для всего приложения, мы должны выполнить следующую процедуру:
Вы должны добавить это значение в plist: "Просмотреть статус панели управления на основе контроллера" и установить его "НЕТ".
Нажмите здесь, чтобы посмотреть скриншот