У меня есть два ListView
внутри TabView
, который в свою очередь находится внутри NavigationView
.
Когда я запускаю этот код и прокручиваю содержимое ListView
, я вижу, что создается пустое представление, которое, кажется, находится над ListView
строками.
Когда представление спискапрокручивая до самого верха, он полностью покрывает первый элемент.
import SwiftUI
struct ContentView: View {
@State private var gibsonGuitars = [ Guitar(id: 1, name: "Les Paul")]
@State private var fenderGuitars = [ Guitar(id: 1, name: "Stratorcaster")]
@State private var selectedView = 0
private let brandGibson = "Gibson Guitars"
private let brandFender = "Fender Guitars"
private var title: String {
$selectedView.wrappedValue == 0 ? brandGibson : brandFender
}
var body: some View {
NavigationView {
TabView(selection: $selectedView) {
GuitarListView(guitars: $gibsonGuitars)
.tabItem {
Image(systemName: "guitars")
Text(brandGibson)
}
.tag(0)
GuitarListView(guitars: $fenderGuitars)
.tabItem {
Image(systemName: "guitars")
Text(brandFender)
}
.tag(1)
}
.navigationBarTitle(Text(title))
GuitarDetail()
}
.navigationViewStyle(DoubleColumnNavigationViewStyle())
}
}
struct Guitar: Identifiable {
var id: Int
var name: String
}
struct GuitarListView: View {
@Binding var guitars: [Guitar]
var body: some View {
List(guitars) { guitar in
Text(guitar.name)
}.listStyle(GroupedListStyle())
}
}
struct GuitarDetail: View {
@State var guitar: Guitar?
var body: some View {
guard let guitar = guitar else {
return Text("No Guitar Selected.")
}
return Text("\(guitar.name)").font(.largeTitle)
}
}
Что это?Как мне избежать этого?