Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 是否可以在文本视图数组上循环并显示它们?_Ios_Swift_Swiftui - Fatal编程技术网

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)
            }
        }
    }
}