Стандарт TabView
не позволяет теперь изменять выравнивание контента tabItem
... но можно создавать пользовательские плавающие элементы в виде табуляции на основе Button
, как показано ниже, что позволит выравнивать и / или настроить внешний вид и при этом активировать элементы TabView программно.
struct TabbedView: View {
@State private var selected = 0
var body: some View {
ZStack(alignment: Alignment.bottom) {
TabView(selection: $selected) {
View1().tabItem {
Text("") // < invisible tab item
}.tag(1)
View2().tabItem {
Text("")
}.tag(2)
View3().tabItem {
Text("")
}.tag(3)
}
// tab-items cover - do anything needed, height, position, alignment, etc.
HStack {
Button(action: { self.selected = 1 } ) {
Image("Tab1") // << align & highlight as needed
}
Button(action: { self.selected = 2 } ) {
Image("Tab2") // << align & highlight as needed
}
Button(action: { self.selected = 3 } ) {
Image("Tab3") // << align & highlight as needed
}
}
}
}
}
Примечание: это могут быть даже кнопки без кнопок, только изображения с жестом касания и т. д. c.