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.