To je standardní SwiftUI chování v iOS 15, jak to provádí ve výchozím nastavení je doporučení od Apple Human Interface Guidelines, které říká, záložka bary by měly používat plné variant SF Symboly, zatímco postranní na iPad by měl použít obrys varianta.
Efektu je dosaženo tím, že iOS automaticky použití .symbolVariant
prostředí hodnoty, jak je uvedeno v symbol variant dokumentace:
SwiftUI nastaví varianta pro vás v některých prostředích. Například, SwiftUI automaticky použije fill
symbol varianta pro položky, které se zobrazí v obsahu uzavření swipeActions(edge:allowsFullSwipe:content:)
metoda, nebo jako na liště položky TabView.
Pokud si naprosto chcete získat jízdu vyplnit režimu, je to záměrně obtížné, ale ne nemožné. Budete muset přepsat dodávané \.symbolVariant
proměnné prostředí přímo na Label
prvek, uvnitř tabItem
prohlášení:
Text("Map!")
.tabItem {
Label("Map", systemImage: "map")
.environment(\.symbolVariant, .none)
}
Pomocí .symbolVariant(.none)
modifikátor, nebo se snaží nastavit prostředí hodnota vyšší zobrazení grafu, nebude fungovat.
Teď, že jste vidět, jak potlačit účinek, já bych přesto doporučujeme použít vyplněné formuláře v liště. Vzhledem k tomu, že liště již má barvu pozadí rozdíl do zbytku stránky, v mnoha případech, navíc vizuální váhu na záložce položky pomocí vyplněné varianta dodává správné množství vizuální hmotnosti těchto prvků.