Ios 是否可以在文本视图数组上循环并显示它们?
我有一个类型为Ios 是否可以在文本视图数组上循环并显示它们?,ios,swift,swiftui,Ios,Swift,Swiftui,我有一个类型为[Text]的数组,我正试图使用ForEach来呈现它,但是它告诉我文本需要符合可散列或可识别。有没有其他方法来实现这一点?我确实尝试过哈希实现: 扩展文本:可哈希{ 公共func散列(放入散列程序:inout散列程序){ hasher.combine(自) } } 但不幸的是,这不起作用。我不想添加文本视图,因为我想控制它们之间的间距。假设从技术上讲这是可能的(老实说) 然而,当然,SwiftUI的正确答案是 struct Demo2: View { let texts
[Text]
的数组,我正试图使用ForEach
来呈现它,但是它告诉我文本
需要符合可散列
或可识别
。有没有其他方法来实现这一点?我确实尝试过哈希实现:
扩展文本:可哈希{
公共func散列(放入散列程序:inout散列程序){
hasher.combine(自)
}
}
但不幸的是,这不起作用。我不想添加
文本
视图,因为我想控制它们之间的间距。假设从技术上讲这是可能的(老实说)
然而,当然,SwiftUI的正确答案是
struct Demo2: View {
let texts = ["1", "2", "3", "4"]
var body: some View {
VStack {
ForEach(texts.indices, id: \.self) { Text(texts[$0]) }
}
}
}
因为SwiftUI是声明性的,所以我们只需要更改数据,就可以让SwiftUI更新自己。因此,让您的ui依赖于数据本身,而不是另一个ui
struct ContentView: View {
let yourTexts = ["1", "2", "3", "4"]
var body: some View {
VStack {
ForEach(yourTexts, id: \.self) {
Text($0)
}
}
}
}
与其拥有一个视图数组,我建议您拥有一个相关数据数组,然后在上面进行迭代,生成
Text
视图。是的,您应该创建一个[String],并在ForEach中,将每个视图添加为一个Text(String)cool,这就是我最后在@Paulw11中所做的。如果你想提交答案,我会接受。我有点惊讶ForEach不支持视图。文本的类型是[View]还是[AnyView]?我看了一下类型是否表示数组,那么您是使用该数组还是任意视图来处理视图?
struct ContentView: View {
let yourTexts = ["1", "2", "3", "4"]
var body: some View {
VStack {
ForEach(yourTexts, id: \.self) {
Text($0)
}
}
}
}