【发布时间】:2019-09-18 07:30:20
【问题描述】:
现在我们在 Xcode 的 GM 上,我仍然没有得到一些基本的背景颜色。下面只是一个测试应用程序。目标是使整个背景为绿色,而“单元格”为红色。当您单击一个单元格时,它会转到一个示例详细信息,整个背景为绿色(这在示例代码中有效)。
有没有办法让带有导航视图和列表的 ContentView 上的背景变成绿色,就像在“DetailView”上一样?
struct ContentView: View {
var body: some View {
NavigationView {
List {
ForEach(1...3, id: \.self) { index in
NavigationLink( destination: DetailView()) {
ContentCell()
}
.frame(height: 100)
}
}
.navigationBarTitle("My List")
}
.background(Color.green)// Not working
}
}
struct ContentCell: View {
var body: some View {
GeometryReader { geometry in
VStack {
Text("An item to display.")
}
.frame(width: (geometry.size.width), height: geometry.size.height, alignment: .center)
.background(Color.red)// Working
}
}
}
struct DetailView: View {
var body: some View {
VStack {
Text ("At the detail view")
}
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
.background(Color.green)// Working
.edgesIgnoringSafeArea(.all)
}
}
【问题讨论】:
-
您可以将 ZStack 与 Color.green 和 NavigationView 一起使用。
-
是的,但是有一个列表,它仍然是白色的。如果你然后摆脱列表它是绿色的。使用 NavigationView(应用程序需要)和 List(应用程序需要),我找不到任何组合可以让您使用 List(编辑按钮)的实用性,而不是白色背景。
-
Xcode 中最简洁的功能之一是 Debug->View Debugging->Capture View Hierarchy。您正在设置背景,但在它和覆盖背景的 ContentCell 之间有几个视图。列表本身似乎是一个表格视图,每个单元格都有自己的背景。
标签: swiftui