如何定位列表视图
How to position List view
我的结构视图中有以下代码
var body: some View {
NavigationView {
List {
Section("Measurements") {
ForEach(meaHeaders, id: \.id) { measurement in
VStack {
HStack {
Text(measurement.name!)
Spacer()
}
HStack {
Text(measurement.desc ?? "").font(.caption)
Spacer()
}
}
}.swipeActions() {
Button("Delete") {
}.tint(.red)
Button("Edit") {
newMeasurement.toggle()
}.tint(.blue)
}
}
}
}.toolbar() {
Button(action: {
newMeasurement = true
}, label: {
Image(systemName: "plus.circle")
}).sheet(isPresented: $newMeasurement) {
NewMeasurement(showMe: $newMeasurement, processID: processID)
}
}
}
如所附屏幕截图所示
我想知道如何将列表视图推到顶部。我尝试了各种垫片,但 none 工作正常。
向下偏移是由于 NavigationView
。 NavigationView
s 在 SwiftUI 中非常烦人,特别是因为它们具有这种效果。您可以完全删除 NavigationView
或删除 NavigationBar
和 .navigationBarHidden()
以恢复视图。或者,您可以使用 .offset()
偏移视图,但这可能会影响某些功能。
除非你想要NavigationView
,否则我建议你摆脱它并实现你自己的导航。
注意:.navigationBarHidden()
有点问题,您可能需要将导航标题设置为“”才能正常工作。
我的结构视图中有以下代码
var body: some View {
NavigationView {
List {
Section("Measurements") {
ForEach(meaHeaders, id: \.id) { measurement in
VStack {
HStack {
Text(measurement.name!)
Spacer()
}
HStack {
Text(measurement.desc ?? "").font(.caption)
Spacer()
}
}
}.swipeActions() {
Button("Delete") {
}.tint(.red)
Button("Edit") {
newMeasurement.toggle()
}.tint(.blue)
}
}
}
}.toolbar() {
Button(action: {
newMeasurement = true
}, label: {
Image(systemName: "plus.circle")
}).sheet(isPresented: $newMeasurement) {
NewMeasurement(showMe: $newMeasurement, processID: processID)
}
}
}
如所附屏幕截图所示
向下偏移是由于 NavigationView
。 NavigationView
s 在 SwiftUI 中非常烦人,特别是因为它们具有这种效果。您可以完全删除 NavigationView
或删除 NavigationBar
和 .navigationBarHidden()
以恢复视图。或者,您可以使用 .offset()
偏移视图,但这可能会影响某些功能。
除非你想要NavigationView
,否则我建议你摆脱它并实现你自己的导航。
注意:.navigationBarHidden()
有点问题,您可能需要将导航标题设置为“”才能正常工作。