试试这个...
HStack {
VStack {
Image(systemName: "homekit")
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: geometry.size.width/5, height: geometry.size.height/28)
.padding(.top, 10)
Spacer()
}
}
struct TabbBar: View {
let tabs: [TabbItem]
@Binding private var selectedItem: TabbItem
init?(tabs items: [TabbItem], selected: Binding<TabbItem>) {
guard items.count > 0 else {
return nil
}
tabs = items
_selectedItem = selected
}
var body: some View {
HStack {
ForEach(tabs) { item in
TabbItemView(
item: item,
isSelected: createBindingFor(item)
)
}
}
.frame(maxWidth: .infinity)
.padding(.top, 4)
}
private func createBindingFor(_ item: TabbItem) -> Binding<Bool> {
Binding(
get: { selectedItem == item },
set: { isSelected in
if isSelected {
selectedItem = item
}
}
)
}
}
.overlay
,通过传递选择来控制TabView
,并且你可以将其变得比标准的更大。 - Yrb.tabItem
的?当我使用一个带有空字符串的Label
时,图标仍然居中,而不像你的在顶部。 - Magnas