SwiftUI 中的 ForEach
Posted
技术标签:
【中文标题】SwiftUI 中的 ForEach【英文标题】:ForEach in SwiftUI 【发布时间】:2019-09-13 16:22:27 【问题描述】:使用 ScrollView 和 ForEach 时代码如下:
ScrollView(.horizontal,showsIndicators: false)
HStack
ForEach(self.QUOTES, id: \.self) qt in
Text(qt)
没问题,没问题。 但是当我想在 ForEach 块中使用任何代码(比如添加图像)时,如下代码:
ScrollView(.horizontal,showsIndicators: false)
HStack
ForEach(self.QUOTES, id: \.self) qt in
Text(qt)
Image(systemName: "a.square.fill")
.resizable()
.frame(width: 40, height: 40)
我在写作时收到以下错误: 无法推断复杂的闭包返回类型;添加显式类型以消除歧义
【问题讨论】:
您是否尝试过将您的Text
和Image
放入某种堆栈中?堆栈还是 Hstack?老实说,这意味着 no 进攻,这是非常基本的 SwiftUI。也许您的 HStack 在 FroEach 中太……外……。但是用更简单的东西统计≥Maybe A List
。或者可能是View
。将它移到它的 own 结构中。 (我的选择?Button
。谁在乎它是否不做任何事情。按照您的意愿进行布局。)照原样,您需要 Group
您的代码或使用一堆源代码。但是也?照原样,您的问题无助于说出哪个。
【参考方案1】:
ForEach
结构需要包含单个视图,因此您需要根据您希望布局呈现的方式对文本和图像进行分组或将它们嵌入堆栈中。
ScrollView(.horizontal,showsIndicators: false)
HStack
ForEach(self.QUOTES, id: \.self) qt in
Group
Text(qt)
Image(systemName: "a.square.fill")
.resizable()
.frame(width: 40, height: 40)
【讨论】:
以上是关于SwiftUI 中的 ForEach的主要内容,如果未能解决你的问题,请参考以下文章
如何在 SwiftUI 的 ScrollView 中制作动画? SwiftUI 中的手风琴风格动画