Geo*_*e_E 7 swift swiftui swiftui-list
我试图List在编辑模式下重新排列行。
快速摘要:我希望DisclosureGroup行Second不被插入到它们自己的子层次结构中。如果他们进入任何其他层次结构/级别也没关系。
下面是一些示例代码:
struct ContentView: View {
var body: some View {
List {
ForEach(0 ..< 1) { _ in
DisclosureGroup("First", isExpanded: .constant(true)) {
ForEach(0 ..< 1) { _ in
Text("Item 1")
Text("Item 2")
DisclosureGroup("Second", isExpanded: .constant(true)) {
// Individual
Text("Item 3")
Text("Item 4")
// Grouped
// ForEach(0 ..< 1) { _ in
// Text("Item 3")
// Text("Item 4")
// }
}
}
}
}
.onMove(perform: { _, _ in })
}
.listStyle(.sidebar)
.environment(\.editMode, .constant(.active))
}
}
Run Code Online (Sandbox Code Playgroud)
这就是行注释的含义:
DisclosureGroup可以在这些元素之间移动(不需要)Item 3和Item 4可以交换行,但是这些行不能再拖动到其他位置,例如 和Item 1之间Item 2。当DisclosureGroup拖动一行时,可以:
DisclosureGroup行不应插入到它自己的子行之间。我们现在纯粹专注于视觉 UI,因此该onMove(perform:)方法尚未完成。
笔记:
个别方法:可以将该行移动到与和Second相同的层,这是不允许的。然而,它确实允许和位于和之间。Item 3Item 4Item 3Item 4Item 1Item 2
分组方法:Item 3和Item 4被“锁定”到自己的级别 - 之间不能插入视图,也不能移动到与Item 1和相同的级别Item 2(不好)。但是,在这种情况下,Second无法进入其自己的子级层次结构(好)。
我该如何解决这个问题,所以我基本上有“单独的方法”,但是DisclosureGroup像这样的行Second无法插入到它们自己的子层次结构中?如果他们进入任何其他层次结构/级别也没关系。
我意识到这是一个相当复杂的问题 - 所以请亲自尝试代码并观看 GIF 来理解。
如果它运行正常,我也会接受 UIKit 解决方案(例如使用UICollectionView?)。
| 归档时间: |
|
| 查看次数: |
519 次 |
| 最近记录: |