gpt4 book ai didi

swiftui - ForEach 字符串中的字符

转载 作者:行者123 更新时间:2023-12-05 08:38:15 25 4
gpt4 key购买 nike

在 SwiftUI 中,如何使用 ForEach 遍历字符串中的每个字符?

例如

let some_string = "A⍺甲あ"

VStack {
ForEach(....) {....
Text(String(character_in_the_string))
}
}

输出

A



最佳答案

ForEach 要求传递给它的值符合 RandomAccessCollection。一个 String 是一个 Sequence,它可以通过将它变成一个 Array 来变成一个 RandomAccessCollection

使用Array()将字符串转为[Character]:

VStack {
ForEach(Array(some_string), id: \.self) { character in
Text(String(character))
}
}

一般来说,您应该小心选择一个唯一的id。由于 some_string 可能包含重复的字符,您可以改为使用 .enumerated() 将每个 Character 转换为 (offset, element) 对(其中 offset 是它在 String 中的位置)。然后使用 .offset 作为 id.element 从元组对中检索 Character:

VStack {
ForEach(Array(some_string.enumerated()), id: \.offset) { character in
Text(String(character.element))
}
}

这很重要,例如,如果您正在动画化从字符串中删除字符。如果您使用字符作为 .id,如果连续列出多个相同的字符,SwiftUI 可能会选择错误的字符来设置动画。

关于swiftui - ForEach 字符串中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63740992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com