samsung - xamarin forms ios change status bar color




Como alterar a cor do texto da barra de status no iOS (20)

Meu aplicativo tem um fundo escuro, mas no iOS 7 a barra de status ficou transparente. Então eu não consigo ver 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?


  1. Vá para Project -> Target ,

  2. Em seguida, defina o Status Bar Style como Light . Ela torna a barra de status branca na tela de inicialização.

  3. Em seguida, defina a View controller-based status bar appearance igual a NO em Info.plist .


  1. Defina o UIViewControllerBasedStatusBarAppearance como YES no arquivo .plist.

  2. No viewDidLoad faça um [self setNeedsStatusBarAppearanceUpdate];

  3. Adicione o seguinte método:

    - (UIStatusBarStyle)preferredStatusBarStyle
    { 
        return UIStatusBarStyleLightContent; 
    }

Nota : Isto não funciona para controladores dentro do UINavigationController , por favor, veja o comentário de Tyson abaixo :)

Swift 3 - Isso funcionará controladores dentro UINavigationController . Adicione este código dentro do seu controlador.

// Preferred status bar style lightContent to use on dark background.
// Swift 3
override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

Apenas dois passos da seguinte forma:

Passo 1:

Na guia Informações do project target do project target , Adicionar linha:

UIViewControllerBasedStatusBarAppearance , definir valor NO .

Passo 2:

No projeto AppDelegate.m :

- (BOOL)application:(UIApplication *)application 
        didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
    
    [application setStatusBarStyle:UIStatusBarStyleLightContent];
    
}

Apenas para resumir, edite seu projeto Info.plist e adicione:

View controller-based status bar appearance : NO

Status bar style : Opaque black style

ou se você tem chave / valor bruto

UIViewControllerBasedStatusBarAppearance : NO

UIStatusBarStyle : Opaque black style



Como alternativa, você pode desativar a aparência da barra de status baseada no controlador de visualização:

  1. Defina a View controller-based status bar appearance como NO em seu Info.plist .
  2. Chame [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

Nota: Este método foi descontinuado no iOS9. Use preferredStatusBarStyle no UIViewController. (veja Apple Developer Library )


Em AppDelegate.m, adicione o seguinte.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

} 

E no arquivo Plist, defina 'Exibir a aparência da barra de status baseada no controlador' como NO.


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:


Eu fiz algumas coisas diferentes e isso funciona para mim.

Sem alterações no código, fiz o config meu arquivo .plist assim:

  • Exibir a aparência da barra de status baseada no controlador> NO
  • Estilo da barra de status> UIStatusBarStyleLightContent (string simples)

Espero que ajude.

editar

Para cada controlador de exibição, altero a propriedade Métricas Simuladas da "barra de status", no storyboard, de "inferida" para "Conteúdo Leve"


Isso está documentado no Guia de transição da interface do usuário do iOS 7 , no qual você precisa de um ID de desenvolvedor da Apple para acessar diretamente. O trecho relevante:

Como a barra de status é transparente, a vista por trás é exibida. [...] Use uma constante UIStatusBarStyle para especificar se o conteúdo da barra de UIStatusBarStyle deve ser escuro ou claro:

UIStatusBarStyleDefault exibe conteúdo escuro. [...]

UIStatusBarStyleLightContent exibe conteúdo leve. Use quando o conteúdo escuro estiver atrás da barra de status.

Também possivelmente de interesse:

No iOS 7, você pode controlar o estilo da barra de status de um controlador individual e alterá-lo enquanto o aplicativo é executado. Para ativar esse comportamento, adicione a chave UIViewControllerBasedStatusBarAppearance ao arquivo Info.plist um aplicativo e forneça o valor YES .

Eu definitivamente recomendo dar uma olhada no documento, que, novamente, você pode acessar com seu ID de desenvolvedor da Apple.


Não há necessidade de fazer algum extra, basta escrever esse código em sua viewController e obter a barra de status em branco

- (UIStatusBarStyle)preferredStatusBarStyle{return UIStatusBarStyleLightContent;}

Nada disso funcionou para mim, então aqui está uma solução de trabalho ...

No Info.plist , adicione uma linha:

UIViewControllerBasedStatusBarAppearance e defina o valor NO .

Em seguida, em AppDelegate in didFinishLaunchingWithOptions , adicione estas linhas:

[application setStatusBarHidden:NO];
[application setStatusBarStyle:UIStatusBarStyleLightContent];

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.


Resposta atualizada para o Xcode GM Seed:

  1. No Info.plist coloque a View controller-based status bar appearance como NO

  2. No projeto, defina:

  3. Em ViewDidLoad:

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];


Se você quiser o mesmo resultado com o Swift, você pode usar este código no seu arquivo AppDelegate.swift:

UINavigationBar.appearance().barStyle = .BlackTranslucent

E o texto da sua barra de status será branco :-)!


Se você tiver um controlador de navegação incorporado criado por meio do Interface Builder , defina o seguinte em uma classe que gerencie seu controlador de navegação:

-(UIStatusBarStyle)preferredStatusBarStyle{ 
    return UIStatusBarStyleLightContent; 
} 

Isso deve ser tudo que você precisa.


em info.plist, defina o valor do campo NÃO Visualize a aparência da barra de status baseada no controlador e configure a luz de estilo da barra de status na configuração geral> destino.


No Swift 3 é muito fácil apenas com 2 passos. Vá para o seu info.plist e mude a View controller-based status bar appearance para "NO". Em seguida, no Appdelegate, basta adicionar essa linha no método didfinishlaunchingwithoptions

  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        UIApplication.shared.statusBarStyle = .lightContent
        return true
    }

Simply In Appdelegate

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

Você não precisa fazer nenhum código para isso

Você precisa adicionar a chave "Exibir a aparência da barra de status baseada no controlador" em info.plist da seguinte maneira:

& defina seu tipo de valor como Boolean & value como NO. Em seguida, clique nas configurações do projeto e, em seguida, clique na guia Geral e, em Informações da implantação, defina o estilo da barra de status preferencial como .Light da seguinte forma:

É isso aí.





uistatusbar