合并n个Text对象

时间:2019-07-07 02:51:59

标签: ios swift swiftui

SwiftUI中,您可以像这样组合Text对象:

var body: some View {
    Text("You can") + Text(" add lots of objects that wrap normally")
}

这样做的好处是可以将多个Text对象用作一个对象,这意味着它们在同一行上并适当地换行。

我不知道如何基于数组或实际上任何递增方式组合n个Text对象。

我已经尝试过ForEach

var texts = ["You can", " add lots of objects that wrap normally"]
var body: some View {
    ForEach(texts.identified(by: \.self)) {
        Text($0)
    }
}

但是看起来像这样

enter image description here

当我希望它看起来像这样

Manual Implementation

谁能告诉我这是怎么做的?

用例:设置Text对象的一部分而不是其他部分的样式。就像NSMutableAttributedString

1 个答案:

答案 0 :(得分:1)

您似乎正在描述这样的内容:

enter image description here

var body: some View {
    let strings = ["manny ", "moe", " jack"]
    var texts = strings.map{Text($0)}
    texts[1] = texts[1].underline() // illustrating your use case
    return texts[1...].reduce(texts[0], +)
}

但是,我认为最好等到属性字符串到达​​。