Perché SwiftUI tabItem systemImage è pieno?

0

Domanda

I selezionare il systemImage "mappa" e "persona" per il tabItem, ma le immagini sono in pieno formato che deve essere nel vuoto formato. Qual è la ragione?

struct TestView: View {
var body: some View {
    TabView {
        Text("Map!")
            .tabItem {
                Label("Map", systemImage: "map")
            }
        
        Text("Profile")
            .tabItem {
                Label("Person", systemImage: "person")
            }
    }
}

}

Xcode: 13.1

SF Simboli: 3.1

enter image description here

swiftui
2021-11-21 19:08:21
1

Migliore risposta

3

Questo è standard SwiftUI comportamento in iOS 15, come si implementa di default le raccomandazioni di Apple Human Interface Guidelines, che dice barre scheda dovrebbe utilizzare pieno di varianti di SF Simboli, mentre le barre laterali su iPad dovrebbe utilizzare il contorno variante.

L'effetto è ottenuto da iOS applicando automaticamente la .symbolVariant il valore di ambiente, come indicato nel simbolo varianti documentazione:

SwiftUI imposta una variante per voi in alcuni ambienti. Per esempio, SwiftUI applica automaticamente l' fill simbolo di variante per gli elementi visualizzati nel contenuto chiusura del swipeActions(edge:allowsFullSwipe:content:) metodo, o come la scheda di bar elementi di un TabView.

Se si vuole assolutamente ottenere il giro della modalità di riempimento, è volutamente difficile, ma non impossibile. È necessario sostituire la dotazione \.symbolVariant variabile di ambiente direttamente sul Label elemento, all'interno del vostro tabItem dichiarazione:

Text("Map!")
  .tabItem {
    Label("Map", systemImage: "map")
      .environment(\.symbolVariant, .none)
  }

Utilizzando il .symbolVariant(.none) modificatore, o cercando di impostare il valore di ambiente più in alto, la vista grafico, non funziona.

Ora che si vede come ignorare l'effetto, vorrei comunque consigliare di utilizzare i moduli compilati nella barra delle schede. Dato che la barra delle schede non ha più un colore di sfondo a differenza del resto della pagina, in molti casi, gli extra di visual peso dato alla scheda elementi da utilizzare per la piena variante presta la giusta quantità di peso visivo di tali elementi.

2021-11-21 20:19:55

In altre lingue

Questa pagina è in altre lingue

Русский
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................