Swiftui 快捷界面显示/隐藏部分
我试图建立一个嵌套层菜单,如草图或Photoshop。 下面是我到目前为止所做的,使用VStack和部分来分组层 现在,当点击分组图层箭头时,我尝试显示/隐藏子图层,以便:Swiftui 快捷界面显示/隐藏部分,swiftui,xcode11,swiftui-list,Swiftui,Xcode11,Swiftui List,我试图建立一个嵌套层菜单,如草图或Photoshop。 下面是我到目前为止所做的,使用VStack和部分来分组层 现在,当点击分组图层箭头时,我尝试显示/隐藏子图层,以便: 有人知道怎么做吗?非常感谢您的帮助!: 我向您展示了一个代码片段,它是可行的,您可以修改它以查看更好的结果 结构节点:可识别{ 变量id=UUID 变量值:字符串= 变量子项:[Node]=[] 变量isSubNode:Bool{ 返回children.count!=0 } } 结构节点视图:视图{ 变量节点:节点 变量级别
有人知道怎么做吗?非常感谢您的帮助!: 我向您展示了一个代码片段,它是可行的,您可以修改它以查看更好的结果 结构节点:可识别{ 变量id=UUID 变量值:字符串= 变量子项:[Node]=[] 变量isSubNode:Bool{ 返回children.count!=0 } } 结构节点视图:视图{ 变量节点:节点 变量级别:Int @状态变量showChildren:Bool=false var body:一些观点{ 节头:HStack{
ForEach0..我向您展示了一个代码片段,它是可行的,您可以修改它以查看更好的结果 结构节点:可识别{ 变量id=UUID 变量值:字符串= 变量子项:[Node]=[] 变量isSubNode:Bool{ 返回children.count!=0 } } 结构节点视图:视图{ 变量节点:节点 变量级别:Int @状态变量showChildren:Bool=false var body:一些观点{ 节头:HStack{
ForEach0..你可以这样做,我只是在第一节做的…当然你也应该为三角形制作动画…;但这是你的任务
struct NestedList: View {
@State var collapsedSection1 = false
var body: some View {
ScrollView {
VStack {
Section (header: HStack {
Image(systemName: "arrowtriangle.down")
.accentColor(.black)
Text("Layer Group 1")
}) {
if collapsedSection1 {
EmptyView()
} else {
Group {
HStack {
Image(systemName: "arrowtriangle.right")
.accentColor(.black)
Text("Layer 1")
}
HStack {
Image(systemName: "arrowtriangle.right")
.accentColor(.black)
Text("Layer 1")
}
}
}
}.onTapGesture {
withAnimation {
self.collapsedSection1.toggle()
}
}
Section (header: HStack {
Image(systemName: "arrowtriangle.down")
.accentColor(.black)
Text("Layer Group 2")
}) {
HStack {
Image(systemName: "arrowtriangle.right")
.accentColor(.black)
Text("Layer 1")
}
HStack {
Image(systemName: "arrowtriangle.right")
.accentColor(.black)
Text("Layer 1")
}
}
}
}
}
}
struct NestedList_Previews: PreviewProvider {
static var previews: some View {
NestedList()
}
}
你们可以这样做,我只是在第一部分做的…当然你们也应该给三角形设置动画…;但这是你们的任务
struct NestedList: View {
@State var collapsedSection1 = false
var body: some View {
ScrollView {
VStack {
Section (header: HStack {
Image(systemName: "arrowtriangle.down")
.accentColor(.black)
Text("Layer Group 1")
}) {
if collapsedSection1 {
EmptyView()
} else {
Group {
HStack {
Image(systemName: "arrowtriangle.right")
.accentColor(.black)
Text("Layer 1")
}
HStack {
Image(systemName: "arrowtriangle.right")
.accentColor(.black)
Text("Layer 1")
}
}
}
}.onTapGesture {
withAnimation {
self.collapsedSection1.toggle()
}
}
Section (header: HStack {
Image(systemName: "arrowtriangle.down")
.accentColor(.black)
Text("Layer Group 2")
}) {
HStack {
Image(systemName: "arrowtriangle.right")
.accentColor(.black)
Text("Layer 1")
}
HStack {
Image(systemName: "arrowtriangle.right")
.accentColor(.black)
Text("Layer 1")
}
}
}
}
}
}
struct NestedList_Previews: PreviewProvider {
static var previews: some View {
NestedList()
}
}
谢谢Chris!我把E.Coms标记为答案,因为它提供了一个更接近我所寻找的Hanks Chris的解决方案!我把E.Coms标记为答案,因为它提供了一个更接近我所寻找的解决方案