Acest lucru este standard SwiftUI comportamentul în iOS 15, cum se pune în aplicare în mod implicit recomandări de la Apple Human Interface guidelines, care spune tab baruri ar trebui să utilizeze umplut variante de SF Simboluri, în timp ce barele laterale de pe iPad ar trebui să utilizați conturul varianta.
Efectul este realizat prin iOS automat aplicarea .symbolVariant
mediul de valoare, după cum sa menționat în simbol variante de documentare:
SwiftUI stabilește o varianta pentru tine în unele medii. De exemplu, SwiftUI se aplică în mod automat fill
simbol variantă pentru elementele care apar în conținutul de închidere a swipeActions(edge:allowsFullSwipe:content:)
metoda, sau ca bara de tab elemente de TabView.
Dacă absolut doriți pentru a obține plimbare de modul de umplere, este făcut în mod deliberat complicat, dar nu imposibil. Trebuie să suprascrie furnizate \.symbolVariant
variabila de mediu direct pe Label
element, în interiorul tău tabItem
declarație:
Text("Map!")
.tabItem {
Label("Map", systemImage: "map")
.environment(\.symbolVariant, .none)
}
Folosind .symbolVariant(.none)
modificator, sau încearcă să setați mediul valoare mai mare de până vedere grafic, nu va funcționa.
Acum, că știi cum să treci peste efectul, mi-ar recomanda pentru a utiliza formularele completate în bara de tab. Având în vedere că bara de tab-ul nu mai are o culoare de fundal diferența față de restul paginii într-o mulțime de cazuri, în plus vizuale greutate dat la fila elemente de utilizare a umplut varianta dă dreptul de suma de visual greutate la acele elemente.