在SwiftUI中更改GroupBox背景色

在SwiftUI中更改GroupBox背景色,swiftui,ios14,xcode12,Swiftui,Ios14,Xcode12,如何更改SwiftUI中GroupBox视图的默认灰色背景色 我尝试添加一个背景修改器,但这只是改变了框下的白色背景(参见屏幕截图) 这是默认的分组框样式。可以使用自定义样式创建所需的任何编组框 这里有一个例子。使用Xcode 12/iOS 14进行测试 尝试覆盖修改器与任何你想要的。如果在覆盖中使用.fill,它将更改背景颜色,但也将覆盖基础视图 我使用了笔划清晰的圆形直角视图,而不是.fill。这是一种简单的方式来设计您的GroupBox .overlay( RoundedRecta

如何更改SwiftUI中GroupBox视图的默认灰色背景色

我尝试添加一个背景修改器,但这只是改变了框下的白色背景(参见屏幕截图)


这是默认的分组框样式。可以使用自定义样式创建所需的任何编组框

这里有一个例子。使用Xcode 12/iOS 14进行测试


尝试覆盖修改器与任何你想要的。如果在覆盖中使用.fill,它将更改背景颜色,但也将覆盖基础视图

我使用了笔划清晰的圆形直角视图,而不是.fill。这是一种简单的方式来设计您的GroupBox

.overlay(
   RoundedRectangle(cornerRadius: 15)
      .stroke(Color.purple, lineWidth: 5)
  )    

我不认为现在有什么办法,但这可能会对你有所帮助:这是有用的,但我不认为它算作“答案”,因为你必须自己设计标签。在开头加上一句“你做不到”,这才是真正的答案。
struct DemoGroupBox: View {
    var body: some View {
        GroupBox(label: Text("Label"), content: {
             Text("Content")
        })
        .groupBoxStyle(TransparentGroupBox())
        .padding()
    }
}

struct TransparentGroupBox: GroupBoxStyle {
    func makeBody(configuration: Configuration) -> some View {
        configuration.content
            .frame(maxWidth: .infinity)
            .padding()
            .background(RoundedRectangle(cornerRadius: 8).fill(Color.blue))
            .overlay(configuration.label.padding(.leading, 4), alignment: .topLeading)
    }
}
.overlay(
   RoundedRectangle(cornerRadius: 15)
      .stroke(Color.purple, lineWidth: 5)
  )