На данный момент в SwiftUI можно делать только с использованием разных изображений для выбранных и невыбранных состояний.
Вот демонстрация подхода к этому
struct TestSelectedTabs: View {
@State var selectedTab = 1
var body: some View {
TabView(selection: $selectedTab){
Text("One")
.tabItem {
Image(systemName: selectedTab == 0 ? "printer.fill" : "printer")
Text("Print")
}.tag(0)
Text("Two")
.tabItem {
Image(systemName: selectedTab == 1 ? "tv.fill" : "tv")
Text("Show")
}.tag(1)
}
}
}
, поэтому, имея два набора иконок (плоский и нажатый), вы можете добиться необходимого эффекта. Или, конечно, вы можете генерировать изображение с желаемым эффектом «нажатия на» в коде, скажем, используя CoreGraphics, Layers и т. Д. c. но, наконец, это должно быть просто изображение.