【问题标题】:ForEach in SwiftUISwiftUI 中的 ForEach
【发布时间】: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)
                    }
                }
            }

我在写作时收到以下错误: 无法推断复杂的闭包返回类型;添加显式类型以消除歧义

【问题讨论】:

  • 您是否尝试过将您的TextImage 放入某种堆栈中?堆栈还是 Hstack?老实说,这意味着 no 进攻,这是非常基本的 SwiftUI。也许您的 HStack 在 FroEach 中太……外……。但是用更简单的东西统计≥Maybe A List。或者可能是View。将它移到它的 own 结构中。 (我的选择?Button。谁在乎它是否不做任何事情。按照您的意愿进行布局。)照原样,您需要 Group 您的代码或使用一堆源代码。但是也?照原样,您的问题无助于说出哪个。

标签: swift swiftui swift5


【解决方案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)
            }
        }
    }
}

【讨论】:

    猜你喜欢
    • 2020-06-20
    • 2019-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    • 2021-01-29
    • 2020-03-04
    相关资源
    最近更新 更多