У меня проблема в том, что вид вкладок создает впечатление, что под ним создается случайное пустое пространство. Я не могу понять, это представление настраиваемой вкладки или нет.
ВАЖНО: следует отметить, что если вы щелкнете в любом месте пустого пространства, вы фактически начнете перемещаться по представлениям — кажется, что это на самом деле невидимая панель вкладок?
Ниже приведен снимок экрана с описанием проблемы:

ContentView:
Код: Выделить всё
struct ContentView: View {
@State var selectedTab = 0
var body: some View {
VStack {
TabView(selection: $selectedTab) {
MyGarageView().tag(0)
FuelView().tag(1)
FinderView().tag(2)
}
}
ZStack{
HStack{
ForEach((TabbedItems.allCases), id: \.self){ item in
Button{
selectedTab = item.rawValue
} label: {
CustomTabItem(imageName: item.iconName, title: item.title, isActive: (selectedTab == item.rawValue))
}
}
}
.padding(6)
}
.frame(height: 75)
.cornerRadius(15)
.padding(.horizontal, 26)
}
}
Код: Выделить всё
enum TabbedItems: Int, CaseIterable{
case myGarage = 0
case fuel
case map
var title: String{
switch self {
case .myGarage:
return "Garage"
case .fuel:
return "Fuel"
case .map:
return "Finder"
}
}
var iconName: String {
switch self {
case .myGarage:
return "garage"
case .fuel:
return "fuel"
case .map:
return "map"
}
}
}
extension ContentView {
func CustomTabItem(imageName: String, title: String, isActive: Bool) -> some View {
HStack(spacing: 10){
Spacer()
Image(imageName)
.resizable()
.renderingMode(.template)
.foregroundColor(isActive ? .white : .gray)
.frame(width: 20, height: 20)
if isActive{
Text(title)
.font(.system(size: 14))
.foregroundColor(isActive ? .white : .black)
}
Spacer()
}
.frame(width: isActive ? 150 : 60, height: 60)
.background(isActive ? .black : .clear)
.cornerRadius(15)
}
}
Я также пытался поиграться с фреймами, но безрезультатно.< /p>
Я не вижу проблемы, и другие сообщения/статьи тоже не помогли. Я застрял

Подробнее здесь: https://stackoverflow.com/questions/773 ... neath-view