【问题标题】:iOS 15 beta 4: AttributedString with Markdown not rendering in Text in SwiftUI?iOS 15 beta 4:带有 Markdown 的 AttributedString 不在 SwiftUI 中的文本中呈现?
【发布时间】:2021-10-05 14:52:57
【问题描述】:

我认为这是 iOS 15 beta 1 或 2 的错误,但从 beta 4 开始,我仍然看到这种行为,所以也许我做错了什么: 文本应该使用 Markdown 呈现 AttributedStrings。当直接 String 文字被传递到 Text 时,它似乎可以正确呈现,但当 AttributedString 是变量时则不会。我在做一些超级愚蠢的事情吗?

struct ContentView: View {
    var text = AttributedString("**Hello**, `world`! Visit our [website](https://www.capitalone.com).")

    var body: some View {
        VStack {
            Text("**Hello**, `world`! Visit our [website](https://www.capitalone.com).")
                .padding()

            Text(text)
                .padding()
        }
    }
}

【问题讨论】:

标签: swiftui ios15


【解决方案1】:

如果您将 Markdown 直接传递到 Text.init(),SwiftUI 会自动将其转换为 AttributedString。

但是,要从 Markdown 字符串转到 AttributedString,您需要使用 explicit AttributedString(markdown:options:baseURL:) initialiser。例如:

var text = try! AttributedString(markdown: "**Hello**, `world`! Visit our [website](https://www.capitalone.com).”)

请注意,如果无法正确进行转换,则会抛出此初始化程序。我在这里使用了try!,因为您的示例 Markdown 肯定会转换,但根据 Markdown 文本的来源,您可能希望更智能地处理抛出的错误。

【讨论】:

  • 啊!我知道我在做一些愚蠢的事情!谢谢。
猜你喜欢
  • 2021-10-27
  • 1970-01-01
  • 2021-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-06
  • 2021-11-18
  • 2021-10-14
相关资源
最近更新 更多