隐藏 SwiftUI DisclosureGroup 箭头并删除默认填充
Posted
技术标签:
【中文标题】隐藏 SwiftUI DisclosureGroup 箭头并删除默认填充【英文标题】:Hide SwiftUI DisclosureGroup Arrow and Remove Default Padding 【发布时间】:2021-02-09 04:52:19 【问题描述】:我正在尝试在 SwiftUI 中创建一个包含项目的可扩展部分的完全自定义列表。这就是我希望它最终的样子:
我认为我的 SwiftUI 代码设置正确,但我无法找到视图修饰符来完成我想要的。
为简洁起见,这是我删除了大部分样式修饰符的代码:
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
- 展开时,DisclosureGroup
的label
水平增长
C
- 子元素的默认填充
我检查了the docs,但没有找到删除这些默认样式的方法。有什么想法可以完成这个设计吗?
【问题讨论】:
【参考方案1】:使用
.listRowInsets(EdgeInsets())
【讨论】:
以上是关于隐藏 SwiftUI DisclosureGroup 箭头并删除默认填充的主要内容,如果未能解决你的问题,请参考以下文章