如何在SwiftUI中使用Text来显示元组值的数组



我已经声明了一个元组数组,如下所示:

var countryFlag: [(flag: String, description: String)] = [("🇺🇸", "United States"), ("🇰🇷", "South Korea"), ("🇵🇭", "Phillipines"), ("🇨🇦", "Canada"), ("🇩🇪", "Germany")]

我正试图使用Text((在HStack中调用并显示这些值,但我的错误是:

使用未解析的标识符"flag"one_answers"description">

这是我的全部代码:

import SwiftUI
import PlaygroundSupport

struct ContentView: View
{
var countryFlag: [(flag: String, description: String)] = [("🇺🇸", "United States"), ("🇰🇷", "South Korea"), ("🇵🇭", "Phillipines"), ("🇨🇦", "Canada"), ("🇩🇪", "Germany")]

var body: some View
{
List(0..<5)
{
item in
HStack
{
Text("(flag)")
Text("(description)")
}
}
}
}
PlaygroundPage.current.setLiveView(ContentView())

List(0..<5) { item in循环5次,item04取值。这些是countryFlag数组的索引。用item订阅countryFlag,然后它将为您提供一个元组。然后,您可以使用.flag.description访问该元组中的值。

替换:

Text("(flag)")
Text("(description)")

带有:

Text("(countryFlag[item].flag)")
Text("(countryFlag[item].description)")

更好的方法是使用.flag作为idList您的countryFlag阵列。

List(countryFlag, id: .flag) { item in
HStack {
Text("(item.flag)")
Text("(item.description)")
}
}

最后,如果在闭包中使用flag, description in将元组分解为两个变量,则可以使用定义的Text视图:

List(countryFlag, id: .flag) { flag, description in
HStack {
Text("(flag)")
Text("(description)")
}
}

最新更新