A minha aplicação tem um fundo escuro, mas no iOS 7 a barra de estado tornou-se transparente. Então eu posso'não vejo nada lá, apenas o indicador verde da bateria no canto. Como posso mudar a cor do texto da barra de status para branco, como se estivesse na tela inicial?
Defina o UIViewControllerBasedStatusBarAppearance
como YES
no arquivo .plist.
No viewDidLoad
faça um [self setNeedsStatusBarAppearanceUpdate];
Adicione o seguinte método:
- (UIStatusBarStyle)preferidoStatusBarStyle
{
retornar UIStatusBarStyleLightContent;
}
**Nota***: Isto não funciona para controladores dentro do UINavigationController
, por favor veja Comentário de Tyson abaixo :)
Swift 3 - Isto funcionará com controladores dentro do 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
}
**Swift 5 e SwiftUI***
Para SwiftUI crie um novo arquivo swift chamado HostingController.swift
.
import Foundation
import UIKit
import SwiftUI
class HostingController: UIHostingController<ContentView> {
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}
Em seguida, altere as seguintes linhas de código no `SceneDelegate.swift'.
window.rootViewController = UIHostingController(rootView: ContentView())
para
window.rootViewController = HostingController(rootView: ContentView())
Isto está documentado no iOS 7 UI Transition Guide, que você precisa de um ID de desenvolvedor Apple para acessar diretamente. O trecho relevante:
Porque a barra de estado é transparente, a vista por trás dela mostra-se através dela. [...] Utilize uma constante `UIStatusBarStyle' para especificar se o conteúdo da barra de status 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 a partir de um controlador vew individual e alterá-lo enquanto o aplicativo roda. Para optar por este comportamento, adicione a chave
UIViewControllerBasedStatusBarAppearance' ao arquivo
Info.plist' de um aplicativo e dê a ele o valor `YES'.
Eu definitivamente recomendaria dar uma olhada no documento, que, mais uma vez, você pode acessar com seu ID de desenvolvedor Apple.
Isto parece ser um problema com a actual construção do Xcode e do iOS 7.
Alguns conteúdos relacionados nos Fóruns de Desenvolvedores Apple está em uma busca por UIStatusBarStyleLightContent em "iOS 7 Beta Livability" nos Fóruns de Desenvolvedores Apple* (atualmente 32 posts).
Deparei-me com ele a tentar pô-lo na versão leve.
(Isto é apenas um seguimento da resposta do Aaron).