SwiftUI 无限 TabView 项

Posted

技术标签:

【中文标题】SwiftUI 无限 TabView 项【英文标题】:SwiftUI unlimited TabView item 【发布时间】:2021-07-31 13:07:42 【问题描述】:

我收到了 50 个关于 Firebase 的问题。我在作为自定义准备的 TabView 中使用 ForEach 返回此数据。但是从第23个问题,我看不到其他问题。我无法前进到下一页。这是什么原因? TabView中的物品不能无限退吗?

动图:

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
        
    

【问题讨论】:

【参考方案1】:

我解决了我的问题。 我在 ForEach 中添加了这个

ForEach(tests.indices, id: \.self) ... 

【讨论】:

以上是关于SwiftUI 无限 TabView 项的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI 中的双向无限 PageView

SwiftUI:在 TabView 中调整图像的位置

带有 TabView、SwiftUI 的水平分页滚动视图

在 SwiftUI 中的 tabview 中嵌入 webview

SwiftUI:将项目动态添加到 TabView [重复]

更改 TabView (SwiftUI) 中未选中图标的颜色