swiftui - 隐藏 SwiftUI DisclosureGroup 箭头并删除默认填充

标签 swiftui

我正在尝试制作一个完全自定义的可扩展部分列表,这些部分在 SwiftUI 中包含项目。这就是我希望它最终的样子:
enter image description here
我想我已经正确设置了 SwiftUI 代码,但是我无法找到 View 修饰符来完成我想要的。
这是我的代码,为简洁起见,删除了大多数样式修饰符:

List {
  ForEach(sections, id: \.self) { section in
  
    DisclosureGroup(isExpanded: $expand) {
      ForEach(section.projectArray, id: \.self) { project in
        //--- Projects ---
        HStack{
          Image("project")
          Text(project.wrappedName)
          Spacer()
        }
        .padding(EdgeInsets(top: 0, leading: 0, bottom:0, trailing: 0))
      } 
    } label: {
      //--- Sections ---
      HStack{
        Text(section.wrappedName)
        Spacer()
        //Custom Toggle Arrow
        Button(action: {
          //Toggle logic
        }){
          if expand{
            Image("section-open")
          }else{
            Image("section-closed")
          }
        }
      }
      .padding(0)
    }
  } 
}.listStyle(PlainListStyle())
我找不到任何可以改变的东西 DisclosureGroup添加了一些我不想要的默认样式:
A - 默认展开/折叠箭头
B - 展开时,DisclosureGrouplabel水平生长
C - 子元素上的默认填充
enter image description here
我查了 the docs并且看不到删除这些默认样式的方法。我有什么想法可以完成这个设计吗?

最佳答案

.listRowInsets(EdgeInsets())

关于swiftui - 隐藏 SwiftUI DisclosureGroup 箭头并删除默认填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66113179/

相关文章:

swift - 有没有办法在 SwiftUI 中更改列表行的背景?

swift - 如何在 SwiftUI tvOS 中检测 'Click' 手势

ios - SwiftUI:TabView 高度内的 NavigationView 不占据全屏

SWIFTUI 可刷新(拉动刷新)在 ScrollView 上不起作用

ios - ForEach 两个数组 - 可能有简单的解决方案吗?

ios - 用点填充文本行中的剩余空白(多行文本)iOS

swiftui - UIKit > SwiftUI > UIKit 时未显示导航栏项目

ios - 使用输入的字符串作为出现在 SwiftUI 的 TextField 中的默认文本

text - 如何在 SwiftUI 文本中使用自定义字体使我的文本加粗?

SwiftUI 更改多级子对象已发布的对象更改