como ocultar a barra de status quando a tela inicial aparece no iphone?

85

Existe uma maneira de ocultar a barra de status ao mostrar a tela inicial no iPhone e depois mostrar novamente no aplicativo?

Rahul Vyas
fonte

Respostas:

191

Tenho certeza de que, se o seu arquivo Info.plist tiver o Status bar is initially hiddenvalor definido como YES, ele não será exibido enquanto o aplicativo estiver carregando. Assim que seu aplicativo for carregado, você pode mostrar novamente a barra de status usando o setStatusBarHidden:animated:método UIApplication .

Dave DeLong
fonte
1
não existe essa opção em info.plist.há uma maneira de adicioná-lo manualmente
Rahul Vyas
3
@Rahul selecione a última linha no arquivo e clique no botão de adição na extremidade direita da linha. Em seguida, digite você mesmo.
Dave DeLong
2
O método mostra novamente a barra de status agora, setStatusBarHidden: withAnimation:
SargeATM
2
Se desejar adicioná-lo manualmente, você pode editar o plist em um editor de texto como o BBEdit e adicionar as linhas: <key> UIStatusBarHidden </key> <true /> logo acima da linha </dict>. Ou, no Xcode, clique com o botão direito no plist e escolha Abrir como ... Código-fonte e edite-o como texto.
JScarry
9
"Assim que seu aplicativo for carregado, você pode mostrar novamente a barra de status" Apenas para esclarecer se alguém está confuso, é seguro ativar [[UIApplication sharedApplication] setStatusBarHidden:NO];- aplicativo: didFinishLaunchingWithOptions:
Ryan Romanchuk
48

A chave correta em .plist é "UIStatusBarHidden" e marque o lado direito. Ela se tornará "A barra de status está inicialmente oculta" e depois automaticamente. Na minha prática, você pode controlar a exibição / ocultação da Barra de Status em qualquer lugar ao ocultar:

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

quando mostrar:

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

espero que isso tenha sido útil para você.

Max
fonte
Para definir dinamicamente o tamanho do CGRectMake para qualquer tipo de 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
O UIApplication setStatusBarHidden:withAnimationestá esperando um typedef NSInteger UIStatusBarAnimationpara o segundo argumento, não um BOOL. Em vez de NO, useUIStatusBarAnimationNone
usuário
23

Exibir -> Tipo de lista de propriedades -> iPhone Info.plist. Agora, faça um novo item com a opção "Barra de status inicialmente oculta" marcada.

Jonathan Sterling
fonte
6

Seguindo a resposta de Dave, a chave "A barra de status está inicialmente oculta" não funcionou para mim no iOS 4.3, MAS a chave "UIStatusBarHidden" e, em seguida, definir seu tipo como Booleano e marcar a caixa resolveu.

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

Este artigo do desenvolvedor me levou às chaves Info.plist e, em seguida, descobrir a chave equivalente para ocultá-la não foi muito difícil.

Curiosamente, o "UIStatusBarStyle" precisa usar o nome da enumeração como uma string para funcionar.

Josh Peak
fonte
6

Para o Xcode 5 e superior, você pode apenas definir:

Ver a aparência da barra de status baseada no controlador para NÃO

No seu info.plist ou na guia de informações do seu projeto principal.

Exemplo de configurações de informações no xcode

Ian Jamieson
fonte
3

escreva esta linha em seu método principal .m viewDidload

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

ou selecione o arquivo info.plist da pasta de arquivos de suporte do seu projeto no espaço de trabalho

definir statusbarinitialyhidden para YES

Usman
fonte
2

está obsoleto

setStatusBarHidden:(BOOL) animated:(BOOL) 

é o correto

setStatusBarHidden:(BOOL) withAnimation:(UIStatusBarAnimation)

UIStatusBarAnimation que pode ser:

UIStatusBarAnimationNone ou UIStatusBarAnimationFade ou UIStatusBarAnimationSlide

Jonathan Lamim Antunes
fonte
1

Isso funcionou para mim no info.plist:

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

Adicione Status bar is initially hiddena YESno info.plistarquivo. Isso funcionou para mim.

barra de status oculta

Vinoth Vino
fonte
0

Para editores XML, adicione ao primeiro filho de

<key>UIStatusBarHidden</key>
<true/>
Paul Brewczynski
fonte