小编Asi*_*tus的帖子

SwiftUI 中的双向无限 PageView

我正在尝试制作一个双向 TabView (带有.tabViewStyle(PageTabViewStyle(indexDisplayMode: .never))),其数据源会随着时间的推移而改变。

下面的代码描述了预期的结果:

class TabsViewModel: ObservableObject {
    @Published var items = [-2, -1, 0, 1, 2]
    @Published var selectedItem = 2 {
        didSet {
            if let index = items.firstIndex(of: selectedItem), index >= items.count - 2 {
                items = items + [items.last! + 1]
                items.removeFirst()
            }
            
            if let index = items.firstIndex(of: selectedItem), index <= 1 {
                items = [items.first! - 1] + items
                items.removeLast()
            }
        }
    }
}

struct TabsView: View {
    @StateObject var vm = TabsViewModel() …
Run Code Online (Sandbox Code Playgroud)

pageviews ios tabview swift swiftui

5
推荐指数
2
解决办法
2963
查看次数

标签 统计

ios ×1

pageviews ×1

swift ×1

swiftui ×1

tabview ×1