在 SwiftUI 中使用绑定值添加和删除列表部分

Posted

技术标签:

【中文标题】在 SwiftUI 中使用绑定值添加和删除列表部分【英文标题】:add and remove list sections using binding value in SwiftUI 【发布时间】:2020-12-04 12:37:46 【问题描述】:

我尝试使用绑定值添加和删除列表中的部分,因此当添加或删除项目时,“listSectins”将添加和删除列表中的部分。

   @State private var listSectins = ["SectionOne", "SectionTwo"]
    
     var body: some View 
            
            NavigationView 
                    List(selection: $selection) 
                            Section 
                            ForEach(self.firstSectionData)  rowData in
                                MainMenuRowView(rowData: rowData)
                            
                            .onMove(perform:  indices, newOffset in
                                self.groupData.rowsGroup[0].move(fromOffsets: indices, toOffset: newOffset)
                            )
                        
                        .listRowInsets(EdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 0))
        
    

【问题讨论】:

你会展示你的演示代码吗?目前尚不清楚是什么激活了绑定以及部分内部的内容等。 【参考方案1】:

我尝试下面的代码及其工作

 List(selection: $selection) 
            if self.isEditMode 
                Section 
                    ForEach(self.firstSectionData)  rowData in
                        MainMenuRowView(rowData: rowData, isEditMode: self.isEditMode)
                    
                    .onMove(perform:  indices, newOffset in
                        self.groupData.rowsGroup[0].move(fromOffsets: indices, toOffset: newOffset)
                    )
                
                .listRowInsets(EdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 16))
            

【讨论】:

以上是关于在 SwiftUI 中使用绑定值添加和删除列表部分的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI - 删除绑定数组中的元素会导致错误

在 swiftUI 列表中添加、选择和删除文件名 - MacOS

从 SwiftUI 中的列表中删除绑定

在 ForEach 循环中绑定时,如何阻止 SwiftUI TextField 失去焦点?

从 SwiftUI 的列表中删除列表元素

从 SwiftUI 的列表中删除列表元素