Cambiare colore alla NavigationView in SwiftUI

Mattepuffo's logo
Cambiare colore alla NavigationView in SwiftUI

Cambiare colore alla NavigationView in SwiftUI

Da quanto ho capito la nuova NavigationView di SwiftUI non permette di modificare il colore; quindi ce la dobbiamo tenere del colore standard.

Oppure, possiamo abilitare la vecchia UINavigationBarAppearance e impostare io nostro colore di sfondo.

Ecco un esempio di codice Swift:

import SwiftUI

struct ContentView: View {
    
    let standard = UINavigationBarAppearance()
    
    @ObservedObject var getBooks = GetBooks();
    
    init() {
        standard.configureWithOpaqueBackground()
        standard.backgroundColor = .systemGreen
        standard.titleTextAttributes = [.foregroundColor: UIColor.white]
        
        UINavigationBar.appearance().standardAppearance = standard
    }
    
    var body: some View {
        NavigationView {
            VStack {
            	.........
            }
            .navigationBarTitle(Text("Libri"), displayMode: .inline)
            .navigationBarItems(trailing:
                HStack {
                    Button(action: {
                    }, label: {
                        Text("Aggiungi")
                    }).foregroundColor(Color.black)
                }
            )
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView();
    }
}

In questo modo abbiamo impostato il "vecchio" stile, dato lo sfondo verder e il titolo bianco.

Sotto abbiamo impostato la scritta del bottone a nero, usando direttamente gli strumenti di SwiftUI.

Se volete aggiungere altro stile al Button, potete farlo seguendo sempre le direttive SwiftUI.

Enjoy!


Condividi

1 Commenti

  • jbx

    ottima segnalazione!

    20/03/2020

Commentami!