限制 Swift Ui 中 ForEach 中的元素

Mat*_*art 8 foreach xcode swift google-cloud-firestore swiftui

我无法将 forEach 限制为列表中的 3 项。

我尝试将它们分组或仅将列表限制为仅 3 个项目,但没有得到我想要的结果。我有 Firestore 文档的所有条目。

import SwiftUI
import Firebase
import Ballcap

struct MainPage : View {

    @ObjectBinding var dataSource: ItemDatabase = ItemDatabase()

    var item: Item

    var body: some View {
        NavigationView {
            List {
                ForEach(self.dataSource.items.identified(by: \.id)) { item in
                                    ShortArticleItem(item: item.data!)
                                        .padding()
                                }
                VStack(alignment: .leading) {
                            Text(self.item.categorie ?? "")
                                .font(.largeTitle)
                                .fontWeight(.black)
                                .multilineTextAlignment(.leading)
                                .foregroundColor(.black)

                            ForEach( self.dataSource.items.identified(by: \.id)) { item in
                                            MediumArticleItem(item: item.data!)
                    }
                }
            }
            .navigationBarTitle(Text("The News Place"))
        }
    }
Run Code Online (Sandbox Code Playgroud)

我只想在 ForEach 中包含最后 3 个元素

JPi*_*son 20

如果您使用数组,您始终可以使用数组函数prefix(number)来确定要渲染的项目数


ForEach(arrayItem.prefix(5), id: \.id){ item in 
  //DO Something Here
}
Run Code Online (Sandbox Code Playgroud)


Asy*_*nc- 4

尝试引入一个范围:

@State var range: Range<Int> = 0..<3

ForEach(range, id: \.self) { 
    ShortArticleItem(item: self.dataSource.items[$0].data!)
                                    .padding()
}
Run Code Online (Sandbox Code Playgroud)