SwiftUI 中的两个 ForEach
Posted
技术标签:
【中文标题】SwiftUI 中的两个 ForEach【英文标题】:Two ForEach in SwiftUI 【发布时间】:2019-09-28 13:02:29 【问题描述】:我想在 SwiftUI 中创建两个循环。例如:
ForEach (chapterData) chapter in
ForEach (chapter.line) line in
Text("\(line.text)")
chapterData 是一个章节表( [Chapter] ):
struct Chapter: Codable, Identifiable
let id:Int
let line:[Line]
和
struct Line: Codable, Identifiable
let id: Int
let text: String
我想获取chapterData中所有章节的line.text
但我无法编译这段代码,我认为不可能以这种方式执行两个 ForEach 循环。
有人可以帮我吗?
【问题讨论】:
是的,我刚刚添加了 【参考方案1】:我已更改您的章节 - 最好为任何 Collection
使用复数名称,因为它可以提高代码的可读性:
struct Chapter: Codable, Identifiable
let id:Int
let lines: [Line]
您的 ForEach 语法存在问题,您的第二个 ForEach 应该将 chapter.lines 作为其参数,因为这是实际列表。将外部 ForEach 包裹在 VStack
或 List
中也很重要。因此,您的视图主体可能如下所示:
var body: some View
VStack
ForEach(chapterData) chapter in
ForEach(chapter.lines) line in
Text(line.text)
【讨论】:
以上是关于SwiftUI 中的两个 ForEach的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI:在列表中的两个视图之间画一条线/如何确定视图的中心位置?