SwiftUI:编辑部分内的列表
Posted
技术标签:
【中文标题】SwiftUI:编辑部分内的列表【英文标题】:SwiftUI: edit List inside of a Section 【发布时间】:2020-06-21 08:06:03 【问题描述】:没有Form
和Section
,我可以编辑列表:
var body: some View
List
ForEach(modeConfigurations.sorted, id: \.id) item in
Text("\(item.defaultSortIndex)")
.onMove(perform: move)
.navigationBarItems(trailing:
EditButton()
)
// Body
我想在Form
的Section
中进行编辑,但它在那里不起作用:
var body: some View
Form
Section(header: Text("Sort"))
List
ForEach(modeConfigurations.sorted, id: \.id) item in
Text("\(item.defaultSortIndex)")
.onMove(perform: move)
.navigationBarItems(trailing:
EditButton()
)
// Sort Section
// Form
// Body
我无法编辑,ForEach
内的Text
没有呈现为单独的行。
如何在Form
的Section
中编辑List
?
【问题讨论】:
【参考方案1】:您应该将.navigationBarItems(trailing: EditButton())
放在Form
上以使其正常工作。
也不需要List
,因为Section
已经“表现得像”List
。 (感谢@Sweeper 提及)
var body: some View
Form
Section(header: Text("Sort"))
// List // <- This is not needed as Section contains an implicit list.
ForEach(modeConfigurations.sorted, id: \.id) item in
Text("\(item.defaultSortIndex)")
.onMove(perform: move)
// // <- Removeed this as we removed `List`
// Sort Section
// Form
.navigationBarItems(trailing: EditButton()) // <- Misplacing this was the issue.
// Body
【讨论】:
我认为您也不需要List
。 Section
已经“表现得像”List
。
我知道要更改原始代码。但是正如您提到的,我决定将其添加到答案中。谢谢@Sweeper以上是关于SwiftUI:编辑部分内的列表的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI:Firebase ForEach 列表执行编辑功能无法编辑选定的行项目