Min applikation har en mørk baggrund, men i iOS 7 blev statuslinjen gennemsigtig. Så jeg kan ikke se noget der, kun den grønne batteriindikator i hjørnet. Hvordan kan jeg ændre tekstfarven på statuslinjen til hvid, som den er på startskærmen?
Indstil UIViewControllerBasedStatusBarAppearance
til YES
i .plist-filen.
I viewDidLoad
lav en [self setNeedsStatusBarAppearanceUpdate];
Tilføj følgende metode:
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
Note: Dette virker ikke for controllere inden for UINavigationController
, se venligst Tyson's kommentar nedenfor :)
Swift 3 - Dette vil fungere controllere inden for UINavigationController
. Tilføj denne kode inde i din controller.
// Preferred status bar style lightContent to use on dark background.
// Swift 3
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
Swift 5 og SwiftUI
For SwiftUI opretter du en ny swift-fil kaldet HostingController.swift
.
import Foundation
import UIKit
import SwiftUI
class HostingController: UIHostingController<ContentView> {
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}
Ændr derefter følgende kodelinjer i SceneDelegate.swift
window.rootViewController = UIHostingController(rootView: ContentView())
til
window.rootViewController = HostingController(rootView: ContentView())
Dette er dokumenteret i iOS 7 UI Transition Guide, som du skal have et Apple Developer ID for at få direkte adgang til. Det relevante uddrag:
Fordi statuslinjen er gennemsigtig, vises visningen bag den igennem. [...] Brug en konstant
UIStatusBarStyle
til at angive, om statusbjælkens indhold skal være mørkt eller lyst:
UIStatusBarStyleDefault
viser mørkt indhold. [...]
UIStatusBarStyleLightContent
viser lyst indhold. Anvendes, når der er mørkt indhold bag statuslinjen.
Er muligvis også af interesse:
I iOS 7 kan du styre statusbjælkens stil fra en individuel vew-controller og ændre den, mens appen kører. Hvis du vil vælge denne adfærd, skal du tilføje nøglen
UIViewControllerBasedStatusBarAppearance
til en app'sInfo.plist
-fil og give den værdienYES
.
Jeg vil helt klart anbefale at kigge dokumentet igennem, som du igen kan få adgang til med dit Apple-udvikler-ID.
Det ser ud til at være et problem med den aktuelle version af Xcode og iOS 7.
Der er noget relateret indhold på Apples udviklerfora i en søgning på UIStatusBarStyleLightContent i "iOS 7 Beta Livability" på Apple Developer Forums* (i øjeblikket 32 indlæg).
Jeg stødte på det ved at forsøge at indstille det til den lyse version.
(Dette er blot en opfølgning på Aaron's svar.)