Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用数组填充列表时,如何在SwiftUI中获取列表中元素的索引?_Swift_Swiftui_Swiftui List - Fatal编程技术网

使用数组填充列表时,如何在SwiftUI中获取列表中元素的索引?

使用数组填充列表时,如何在SwiftUI中获取列表中元素的索引?,swift,swiftui,swiftui-list,Swift,Swiftui,Swiftui List,在我的SwiftUI应用程序中,我有一个项目列表 我正在使用菜单项数组来填充列表 struct MenuItem: Identifiable, Equatable { var id = UUID() var text: String } struct MenuView: View { var menuItems = [MenuItem(text:"Text1"),MenuItem(text:"Text2")]

在我的SwiftUI应用程序中,我有一个项目列表

我正在使用菜单项数组来填充列表

struct MenuItem: Identifiable, Equatable {
                    var id = UUID()
                    var text: String
}

struct MenuView: View {

var menuItems = [MenuItem(text:"Text1"),MenuItem(text:"Text2")]

                 var body: some View {

                  List {

                                ForEach(menuItems) {textItem in

                   Text(textItem.text)

             }

        }

        }

    }
问题是,如何获取textItem的索引

例如,如果我想为奇数行和偶数行使用不同的行颜色,或者如果我需要为编号为3的行实现不同的样式


在SwiftUI中获取列表中项目索引的最佳方法是什么

这可以使用
.enumerated
完成。对于您的
菜单项
值,如下所示

List {
    ForEach(Array(menuItems.enumerated()), id: \.1.id) { (index, textItem) in
        // do with `index` anything needed here
        Text(textItem.text)
    }
}

这不管用了。。。我得到的类型“_”没有成员“1”@Muvimotv,它适用于主题启动程序代码。如果你的代码不适用,那么你最好用代码发布你自己的问题。;)它能起作用,但效果并不好。在简单的情况下是可以的。但如果您使用@FetchRequest并从核心数据和do数组(items.enumerated())获取数据,则它的工作方式不太理想,即一次加载所有项。如果您在Item entity中存储数千行,并且希望定义.fetchBatchSize=10,那么它将立即执行所有需要的FetchRequests以加载所有数据,如果您在没有此数组的情况下执行相同的设置()enumereated()mix just ForEach(menuItems,id:\.self),它将执行并加载10行的批处理!