Je to štandardné SwiftUI správanie sa v iOS 15, ako sa to realizuje v predvolenom odporúčania od Apple Human Interface Guidelines, ktorý hovorí, tab bary mali používať naplnené varianty SF Symboly, zatiaľ čo bočné panely na iPad by sa mal používať možných variant.
Účinok sa dosahuje tým, iOS automaticky použitie .symbolVariant
prostredie hodnotu, ako je uvedené v symbol varianty dokumentácia:
SwiftUI nastaví variantu pre vás v niektorých prostrediach. Napríklad, SwiftUI automaticky uplatní fill
symbol variant pre položky, ktoré sa zobrazujú v obsahu uzavretie swipeActions(edge:allowsFullSwipe:content:)
metóda, alebo ako lište položky TabView.
Ak si naozaj chcete dostať jazda na vyplnenie režime, je to zámerne vyrobené zložité, ale nie nemožné. Musíte prepísať dodávanú \.symbolVariant
premenné priamo na Label
element vo vnútri tabItem
vyhlásenie:
Text("Map!")
.tabItem {
Label("Map", systemImage: "map")
.environment(\.symbolVariant, .none)
}
Pomocou .symbolVariant(.none)
modifikátor, alebo sa snaží nastaviť prostredie hodnoty vyššie, a zobraziť graf, nebude to fungovať.
Teraz, keď ste videli, ako potlačiť efekt, by som ešte poradiť, ak chcete použiť vyplnené formuláre v lište. Vzhľadom na to, že lište už má farbu pozadia rozdiel na zvyšok stránky v mnohých prípadoch, extra vizuálnu hmotnosti vzhľadom na karte položky pomocou injekčnej variant dodáva správne množstvo vizuálne hmotnosti tých prvkov.