2017-02-03 1 views
1

D'une manière ou d'une autre, quelle que soit la requête ou le nombre de réponses, je ne trouve pas de personne capable de définir la couleur de la barre d'état dans iOS en utilisant Swift 3. J'ai vu suggestions où vous ajoutez:Couleur de la barre d'état iOS

override var preferredStatusBarStyle: UIStatusBarStyle { 
    return .lightContent 
} 

mais la chose est, je ne veux pas une barre d'état transparent. Je veux un spécifique couleur hex pour la couleur de la barre d'état.

+1

"Je ne veux pas une barre d'état transparent" de chance. Il est transparent (dans les versions récentes d'iOS). Une fois que vous acceptez la réalité, vous pouvez commencer à accepter des solutions de contournement. – matt

Répondre

1

Il n'y a pas d'API pour définir la couleur du contenu de la barre d'état; Si vous en voulez un, vous devez déposer une demande d'amélioration here. Si vous voulez changer la couleur de l'arrière-plan derrière la barre d'état, mettez une vue avec cette couleur d'arrière-plan en haut de la fenêtre de votre application.

+0

Upvote pour mettre une vue colorée sous la barre d'état. Malheureusement, c'était ma façon de le faire. – foxanna

0

Voici Apple Guidelines/Instruction à propos de la modification de la barre d'état. Seule la lumière & (alors que & noir) est autorisée dans la barre d'état.

Voici - Comment changer le style de la barre d'état:

Si vous souhaitez définir le style de la barre d'état, le niveau d'application puis définissez UIViewControllerBasedStatusBarAppearance-NO dans votre fichier `.plist.

si vous wan pour définir le style de la barre d'état, au point de vue niveau du contrôleur puis procédez comme suit:

  1. Réglez le UIViewControllerBasedStatusBarAppearance-YES dans le fichier .plist, si vous devez définir le style de la barre d'état au niveau UIViewController seulement .
  2. Dans la fonction viewDidLoad ajouter - setNeedsStatusBarAppearanceUpdate

  3. remplacement preferredStatusBarStyle dans votre contrôleur de vue.

-

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.setNeedsStatusBarAppearanceUpdate() 
} 

override var preferredStatusBarStyle: UIStatusBarStyle { 
    return .lightContent 
} 

Valeur de consigne de .plist selon le niveau de configuration d'état de style bar. enter image description here


Vous pouvez définir la couleur d'arrière-plan pour la barre d'état lors du lancement de l'application ou pendant viewDidLoad de votre contrôleur de vue.

extension UIApplication { 

    var statusBarView: UIView? { 
     return value(forKey: "statusBar") as? UIView 
    } 

} 

// Set upon application launch, if you've application based status bar 
class AppDelegate: UIResponder, UIApplicationDelegate { 

    var window: UIWindow? 

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
     UIApplication.shared.statusBarView?.backgroundColor = UIColor.red 
     return true 
    } 
} 


or 
// Set it from your view controller if you've view controller based statusbar 
class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     UIApplication.shared.statusBarView?.backgroundColor = UIColor.red 
    } 

} 



Voici résultat:

enter image description here