SwiftUI 无限的 TabView 项目
SwiftUI unlimited TabView item
我收到了 50 个关于 Firebase 的问题。我 return 在我作为自定义准备的 TabView 中使用 ForEach 的此数据。但是从第23题看不出其他问题。我无法前进到下一页。这是什么原因?我不能在 TabView 中无限制地 return 项吗?
动图:
TabView 分页视图:
struct PagingQuestionView: View {
var tests: [Test] = []
@State var imageUrl: String = ""
var storage = Storage.storage().reference()
@ObservedObject var pagingQuestionOptionConfigure: PagingQuestionOptionConfigure = PagingQuestionOptionConfigure()
var body: some View {
GeometryReader { proxy in
TabView(selection: $pagingQuestionOptionConfigure.pageIndex) {
ForEach(tests, id: \.self) { item in
VStack(spacing: 20) {
EmptyView()
.frame(width: 350, height: 250)
.padding()
VStack {
Text("\(item.id))")
Text("\(item.question)")
.padding()
}
PagingOptionView(options: item.sections)
}
.tag(item.id)
}
.rotationEffect(.degrees(-90))
.frame(width: proxy.size.width, height: proxy.size.height)
}
.frame(width: proxy.size.height, height: proxy.size.width)
.rotationEffect(.degrees(90), anchor: .topLeading)
.offset(x: proxy.size.width)
.modifier(TabViewModifier())
}
}
}
TabViewModifier:
struct TabViewModifier: ViewModifier {
@ViewBuilder
func body(content: Content) -> some View {
if #available(iOS 14.0, *) {
content
.tabViewStyle(PageTabViewStyle(indexDisplayMode: .never))
} else {
content
}
}
}
我解决了我的问题。
我在 ForEach
中添加了这个
ForEach(tests.indices, id: \.self){ ... }
我收到了 50 个关于 Firebase 的问题。我 return 在我作为自定义准备的 TabView 中使用 ForEach 的此数据。但是从第23题看不出其他问题。我无法前进到下一页。这是什么原因?我不能在 TabView 中无限制地 return 项吗?
动图:
TabView 分页视图:
struct PagingQuestionView: View {
var tests: [Test] = []
@State var imageUrl: String = ""
var storage = Storage.storage().reference()
@ObservedObject var pagingQuestionOptionConfigure: PagingQuestionOptionConfigure = PagingQuestionOptionConfigure()
var body: some View {
GeometryReader { proxy in
TabView(selection: $pagingQuestionOptionConfigure.pageIndex) {
ForEach(tests, id: \.self) { item in
VStack(spacing: 20) {
EmptyView()
.frame(width: 350, height: 250)
.padding()
VStack {
Text("\(item.id))")
Text("\(item.question)")
.padding()
}
PagingOptionView(options: item.sections)
}
.tag(item.id)
}
.rotationEffect(.degrees(-90))
.frame(width: proxy.size.width, height: proxy.size.height)
}
.frame(width: proxy.size.height, height: proxy.size.width)
.rotationEffect(.degrees(90), anchor: .topLeading)
.offset(x: proxy.size.width)
.modifier(TabViewModifier())
}
}
}
TabViewModifier:
struct TabViewModifier: ViewModifier {
@ViewBuilder
func body(content: Content) -> some View {
if #available(iOS 14.0, *) {
content
.tabViewStyle(PageTabViewStyle(indexDisplayMode: .never))
} else {
content
}
}
}
我解决了我的问题。 我在 ForEach
中添加了这个ForEach(tests.indices, id: \.self){ ... }