3 votes

Impossible de changer la couleur de teinte de la barre de navigation pour les grands titres dans iOS 13.

Code:

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Point de remplacement pour la personnalisation après le lancement de l'application.

        UINavigationBar.appearance().barTintColor = .red

        return true
    }

si prefersLargetitles est faux alors il n'y a pas de problème. Mais avec prefersLargeTitles = true, la couleur ne change pas. Cela fonctionnait avec iOS 12. Mais depuis iOS 13, cela ne fonctionne pas. Est-ce que quelqu'un peut aider sur comment personnaliser les barres de navigation dans iOS 13

8voto

Ankit Jayaswal Points 3477

Il y a quelques changements concernant l'apparence de la barre de navigation dans iOS 13, par défaut la barre de navigation devient transparente si le contrôleur de vue associé a un contenu défilable.

Dans ce cas, vous devriez créer un objet UINavigationBarAppearance et l'assigner à compactAppearance et scrollEdgeAppearance. Vous pouvez également modifier les propriétés de l'objet UINavigationBarAppearance.

if #available(iOS 13.0, *) {
    let appearance = UINavigationBarAppearance()
    appearance.backgroundColor = .purple
    UINavigationBar.appearance().compactAppearance = appearance
    UINavigationBar.appearance().scrollEdgeAppearance = appearance
} else {
    UINavigationBar.appearance().barTintColor = .purple
}

Vous pouvez trouver plus de détails ici & iOS13release_notes

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X