ios - 组合 n 个文本对象

标签 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

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

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

的可能性一样

最佳答案

你似乎在描述这样的事情:

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], +)
}

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

关于ios - 组合 n 个文本对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56919020/

相关文章:

ios - LoadVIew() 中的 UIVisualEffectView

ios - 如何使用面临问题的 branch.io 集成深度链接以创建文件 apple-app-site-association

ios - 特定日期和时间的本地通知不起作用。 swift

ios - iOS 中 SQLite 数据库的电子邮件 CSV

ios - swift performSegueWithIdentifier 发件人值

android - 需要帮助将进程从 Java(android) 转换为 IOS Swift

ios - Swift 中的核心数据检索问题

ios - SwiftUI:当数据通过工作表添加到 Realm 数据库时, View 不会更新

SwiftUI 等同于 apportionsSegmentWidthsByContent?

swift - 确保核心数据 @FetchRequest 变量动态运行需要哪些代码更改(附加代码)?