在 SwiftUI 视图中插入非列表元素
Inserting non-list elements in a SwiftUI view
我正在处理一个 SwiftUI 页面,该页面由一个 table 视图和一些行组成,但我也想在其中包含一些非单元格元素。我目前对此有一些问题,我尝试了各种不同的途径。我基本上只需要其中的一些元素,这些元素没有包裹在单元格中,同时仍然保持 table 视图的灰色背景。在下面的示例中,我试图在 table 行下方获取图像。
下面是我的代码:
import SwiftUI
struct ContentView: View {
private var color = Color(red: 32/255, green: 35/255, blue: 0/255)
var body: some View {
NavigationView {
Form {
Section() {
HStack {
Text("AA")
.foregroundColor(color)
}
HStack {
Text("B")
.foregroundColor(color)
}
HStack {
Text("C")
.foregroundColor(color)
}
HStack {
Text("D")
.foregroundColor(color)
}
HStack {
Text("E")
.foregroundColor(color)
}
HStack {
Text("F")
.foregroundColor(color)
}
HStack {
Text("G")
.foregroundColor(color)
}
}
}.navigationBarTitle(Text("Page"))
HStack {
Image(systemName: "fallLeaves")
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
以下是我尝试过但未成功的所有方案:
场景 1:添加一个 HStack,图像在 List 之外。 (当前代码显示的内容)这不会显示图像,因为 table 视图占据了整个视图。
场景 2:在列表块中添加带有图像的 HStack。像这样将图像包裹在单元格周围
- 场景 3:包装列表,HStack 包含 VStack 中的图像。这不好,因为它基本上就像一个有两个不同视图的分屏。 table 缩小并拥有自己的滚动条。注意下图中的滚动条
理想的解决方案看起来像这样,但我不确定要尝试什么,因为我无法让它看起来像这样,因为它是一个连续视图并且图像不在单元格中
我会让你算出填充和舍入。
struct ContentView: View {
private var color = Color(red: 32/255, green: 35/255, blue: 0/255)
var body: some View {
NavigationView {
Form {
Section(content: {
HStack {
Text("AA")
.foregroundColor(color)
}
HStack {
Text("B")
.foregroundColor(color)
}
}, footer: {
Image("fallLeaves")
})
}.navigationBarTitle(Text("Page"))
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
我正在处理一个 SwiftUI 页面,该页面由一个 table 视图和一些行组成,但我也想在其中包含一些非单元格元素。我目前对此有一些问题,我尝试了各种不同的途径。我基本上只需要其中的一些元素,这些元素没有包裹在单元格中,同时仍然保持 table 视图的灰色背景。在下面的示例中,我试图在 table 行下方获取图像。
下面是我的代码:
import SwiftUI
struct ContentView: View {
private var color = Color(red: 32/255, green: 35/255, blue: 0/255)
var body: some View {
NavigationView {
Form {
Section() {
HStack {
Text("AA")
.foregroundColor(color)
}
HStack {
Text("B")
.foregroundColor(color)
}
HStack {
Text("C")
.foregroundColor(color)
}
HStack {
Text("D")
.foregroundColor(color)
}
HStack {
Text("E")
.foregroundColor(color)
}
HStack {
Text("F")
.foregroundColor(color)
}
HStack {
Text("G")
.foregroundColor(color)
}
}
}.navigationBarTitle(Text("Page"))
HStack {
Image(systemName: "fallLeaves")
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
以下是我尝试过但未成功的所有方案:
场景 1:添加一个 HStack,图像在 List 之外。 (当前代码显示的内容)这不会显示图像,因为 table 视图占据了整个视图。
场景 2:在列表块中添加带有图像的 HStack。像这样将图像包裹在单元格周围
- 场景 3:包装列表,HStack 包含 VStack 中的图像。这不好,因为它基本上就像一个有两个不同视图的分屏。 table 缩小并拥有自己的滚动条。注意下图中的滚动条
理想的解决方案看起来像这样,但我不确定要尝试什么,因为我无法让它看起来像这样,因为它是一个连续视图并且图像不在单元格中
我会让你算出填充和舍入。
struct ContentView: View {
private var color = Color(red: 32/255, green: 35/255, blue: 0/255)
var body: some View {
NavigationView {
Form {
Section(content: {
HStack {
Text("AA")
.foregroundColor(color)
}
HStack {
Text("B")
.foregroundColor(color)
}
}, footer: {
Image("fallLeaves")
})
}.navigationBarTitle(Text("Page"))
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}