Meu aplicativo tem um fundo escuro, mas no iOS 7 a barra de status ficou transparente. Portanto, não vejo nada lá, apenas o indicador verde da bateria no canto. Como posso alterar a cor do texto da barra de status para branco como na tela inicial?
990
Respostas:
Defina
UIViewControllerBasedStatusBarAppearance
comoYES
no arquivo .plist.No
viewDidLoad
fazer um[self setNeedsStatusBarAppearanceUpdate];
Adicione o seguinte método:
Nota : Isso não funciona para controladores internos
UINavigationController
, consulte o comentário da Tyson abaixo :)Swift 3 - Isso funcionará nos controladores internos
UINavigationController
. Adicione esse código dentro do seu controlador.Swift 5 e SwiftUI
Para o SwiftUI, crie um novo arquivo rápido chamado
HostingController.swift
Altere as seguintes linhas de código no diretório
SceneDelegate.swift
para
fonte
Como alternativa, você pode desativar a aparência da barra de status baseada no controlador de exibição:
View controller-based status bar appearance
comoNO
no seuInfo.plist
.[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Nota: Este método foi preterido no iOS9. Use
preferredStatusBarStyle
no UIViewController. (consulte Apple Developer Library )fonte
Você pode fazer isso sem escrever nenhuma linha de código!
Faça o seguinte para fazer com que o texto da barra de status fique branco em todo o aplicativo
No projeto do arquivo plist :
Transparent black style (alpha of 0.5)
NO
NO
fonte
UIStatusBarStyleLightContent
noplist info
No entanto, háTransparent Black
que fazer o mesmo truque :) plus, você precisa adicionarView controller-based status bar appearance
uma vez que não está lá originalmente e é tudo o que você precisa para obtê-lo para o trabalho :)<key>UIStatusBarStyle</key> <string>UIStatusBarStyleLightContent</string> <key>UIViewControllerBasedStatusBarAppearance</key> <false/>
Nota: A resposta mais votada não funciona no iOS 7/8
No Info.plist, defina 'Exibir aparência da barra de status baseada em controlador' como NÃO
No AppDelegate, adicione
para
Esta solução funciona para iOS 7/8
fonte
Para mim, nada aconteceu com o uso de todas as coisas nas outras respostas (e de outras fontes / documentação). O que ajudou foi definir o Estilo da barra de navegação como "Preto" no XIB. Isso mudou o texto para branco sem nenhum código.
fonte
Nada disso funcionou para mim, então aqui está uma solução funcional ...
Em
Info.plist
, adicione uma linha:UIViewControllerBasedStatusBarAppearance
e defina o valorNO
.Em AppDelegate in
didFinishLaunchingWithOptions
, adicione estas linhas:fonte
Você não precisa fazer nenhum código para isso
Você precisa adicionar a chave "Exibir aparência da barra de status baseada no controlador" em info.plist da seguinte maneira:
e defina seu tipo de valor como Booleano e valor como NÃO. Em seguida, clique nas configurações do projeto, clique na guia Geral e, em Informações de implantação, defina o estilo preferido da barra de status como .Light da seguinte maneira:
É isso aí.
fonte
Apenas duas etapas da seguinte maneira:
Passo 1:
Na guia Informações do
project target
, Adicionar linha:UIViewControllerBasedStatusBarAppearance
, defina o valorNO
.Passo 2:
No projeto
AppDelegate.m
:fonte
Isso funciona no Golden Master iOS 7 e no Xcode 5 GM seed e no iOS7 SDK lançado em 18 de setembro de 2013 (pelo menos com o controlador de navegação oculto):
Defina
the UIViewControllerBasedStatusBarAppearance
comoNO
noInfo.plist
.No
ViewDidLoad
método ou em qualquer lugar, onde você deseja alterar o estilo da barra de status:[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
fonte
Caso seu UIViewController esteja dentro de um UINavigationController, você precisará definir o BarStyle:
A resposta original está aqui
https://devforums.apple.com/message/844264#844264
fonte
Se você tiver um controlador de navegação incorporado criado por meio do Interface Builder , defina o seguinte em uma classe que gerencia seu controlador de navegação:
Isso deve ser tudo o que você precisa.
fonte
Estou usando o Xcode 6 beta 5 em um projeto Swift , para um aplicativo iOS 7.
Aqui está o que eu fiz e funciona:
info.plist:
fonte
No AppDelegate.m, adicione o seguinte.
E no arquivo Plist, defina 'Exibir aparência da barra de status baseada em controlador' como NÃO.
fonte
Simply In Appdelegate
fonte
Bem, isso está realmente funcionando como um pedaço de bolo para mim.
Vá para o seu aplicativo
info.plist
.View controller-based status bar appearance
comoNO
Status bar style
comoUIStatusBarStyleLightContent
Em seguida, vá para o representante do seu aplicativo e cole o código a seguir, onde você define o RootViewController do Windows.
Bingo. Está funcionando para mim.
fonte
Vá para
Project
->Target
,Em seguida, defina
Status Bar Style
comoLight
. Torna a barra de status branca da tela de inicialização.Em seguida, defina
View controller-based status bar appearance
igual aNO
inInfo.plist
.fonte
View controller-based status bar appearance equal
paraNO
era a peça que estava faltando. ObrigadoNo Swift 3 é muito fácil, apenas com 2 etapas. Vá para o seu info.plist e altere a chave
View controller-based status bar appearance
para "NÃO". Em seguida, no Appdelegate, basta adicionar esta linha no método de concluir o lançamento com opçõesisso foi preterido no iOS9 agora você deve substituir essa propriedade no rootviewcontroller
fazer isso foi preterido no iOS 9 deve fazer isso no rootviewcontroller
fonte
O iOS 7 permite que os controladores de exibição individuais determinem a aparência da barra de status, conforme descrito na documentação do desenvolvedor da Apple:
Definir a aparência da barra de status globalmente é um processo de duas etapas.
Primeiro, você precisa informar ao iOS que não deseja definir a aparência da barra de status, vista a exibição.
Então você precisa assumir o controle e definir o novo estilo da barra de status global.
Para desativar o controle da barra de status de exibição por exibição, você precisará definir a
View controller-based status bar appearance
propriedade emInfo.plist
.Abra o Navegador de projeto, selecione o projeto para o seu aplicativo iOS e selecione a guia Informações.
Passe o mouse sobre uma linha e clique no sinal de adição que aparece para adicionar uma nova propriedade ao seu
.plist
.Digite
View controller-based status bar appearance
no campo Chave e verifique se o campo Tipo está definido comoBoolean
. Por fim, insiraNO
o campo Valor.Para definir um estilo global para a barra de status, adicione outra propriedade na guia Informações com uma chave de
Status bar style
, um Tipo deString
e um Valor deOpaque black style
.Aqui está uma postagem no blog com um pouco mais de detalhes e um código de exemplo:
http://codebleep.com/setting-the-status-bar-text-color-in-ios-7/
fonte
Não é necessário fazer mais, basta escrever esse código no seu viewController e obter a barra de status em branco
fonte
Resposta atualizada para Xcode GM Seed:
Em
Info.plist
colocarView controller-based status bar appearance
comoNO
No projeto, defina:
Em ViewDidLoad:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
fonte
Eu acho que todas as respostas realmente não apontam o problema porque todas elas funcionam em cenários específicos. Mas se você precisar cobrir todos os casos, siga os pontos abaixo:
Dependendo de onde você precisa do estilo de luz da barra de status, você deve sempre ter em mente estes 3 pontos:
1) Se você precisar da barra de status na tela de inicialização ou em outros lugares, onde não poderá controlá-la (não nos controladores de exibição, mas em alguns elementos / momentos controlados pelo sistema como Tela de Lançamento) Você acessa as configurações do projeto
2) se você tiver um controlador dentro de um controlador de navegação Você pode alterá-lo no construtor de interface da seguinte maneira:
a) Selecione a barra de navegação do seu controlador de navegação
b) Em seguida, defina o estilo da barra de navegação como "Preto", pois isso significa que você terá um fundo "preto" -> escuro sob a barra de status, para que a barra de status seja branca
Ou faça isso no código da seguinte maneira
3) Se você tiver apenas o controlador que precisa ter seu próprio estilo de barra de status e não está incorporado em alguma estrutura de contêiner como um UINavigationController
Defina o estilo da barra de status no código para o controlador:
fonte
Simplesmente chamando
no
método dos meus
AppDelegate
trabalhos ótimos para mim no iOS7.fonte
View controller-based status bar appearance = NO
Isso está documentado no Guia de transição da interface do usuário do iOS 7 , que você precisa de um ID de desenvolvedor da Apple para acessar diretamente. O trecho relevante:
Também possivelmente de interesse:
Definitivamente, recomendo dar uma olhada no documento, que você pode acessar novamente com o seu ID de desenvolvedor da Apple.
fonte
Aqui estão as diretrizes / instruções da Apple sobre alterações na barra de status. Apenas Escuro e claro (enquanto e preto) são permitidos na barra de status.
Aqui está - Como alterar o estilo da barra de status:
Se você quiser estilo barra de status set, nível de aplicação, em seguida, definir
UIViewControllerBasedStatusBarAppearance
aNO
em seu arquivo `.plist'.se você deseja definir o estilo da barra de status, no nível do controlador de exibição, siga estas etapas:
UIViewControllerBasedStatusBarAppearance
comoYES
no.plist
arquivo, se você precisar definir o estilo da barra de status apenas no nível UIViewController.Na função de adição viewDidLoad -
setNeedsStatusBarAppearanceUpdate
substitua o preferidoStatusBarStyle no seu controlador de exibição.
-
Defina o valor de .plist de acordo com o nível de configuração do estilo da barra de status.
Aqui está um truque hacky para alterar / definir a cor de fundo da barra de status durante o lançamento do aplicativo ou durante o viewDidLoad do seu controlador de exibição.
Aqui está o resultado:
fonte
Eu fiz algumas coisas diferentes e funciona para mim.
Sem alterações no código, configurei meu arquivo .plist assim:
Espero que ajude.
editar
Para cada controlador de exibição, altero a propriedade Métricas simuladas da "barra de status", no storyboard, de "inferido" para "Conteúdo claro"
fonte
Se você deseja o mesmo resultado com o Swift, pode usar este código no seu arquivo AppDelegate.swift:
E o texto da sua barra de status ficará em branco :-)!
fonte
Se você ainda deseja usar
View controller-based status bar appearance
no info.plist definido como YES, o que significa que você pode alterar a barra de status para cada controlador de exibição, use o seguinte para texto em branco na barra de status em ViewDidLoad:fonte
No Plist, adicione este:
UIStatusBarStyleLightContent
NO
fonte
em info.plist, defina o valor do campo NÃO Veja a aparência da barra de status baseada no controlador e defina a luz de estilo da barra de status em target> general setting.
fonte
Deixe-me dar uma resposta completa à sua pergunta. Alterar a cor do texto da barra de status é muito fácil, mas é um pouco confuso no iOS 7, especialmente para iniciantes.
Se você estiver tentando alterar a cor de preto para branco no Storyboard, selecionando o controlador de exibição e indo para Métricas simuladas no lado direito, ele não funcionará e não sei por que. Deve funcionar mudando assim, mas de qualquer maneira.
Em segundo lugar, você não encontrará a propriedade UIViewControllerBasedStatusBarAppearance no seu plist, mas, por padrão, não está lá. Você deve adicioná-lo clicando no botão + e depois configurá-lo para NÃO.
cor do texto da barra de status do ios 7
Por fim, você precisa acessar o arquivo AppDelegate.m e adicionar o seguinte no método didFinishLaunchingWithOptions, adicione a seguinte linha:
Isso mudará a cor para branco para todos os seus controladores de exibição. Espero que isto ajude!
fonte