我认为这是 iOS 15 beta 1 或 2 的错误,但从 beta 4 开始我仍然看到这种行为,所以也许我做错了什么:文本应该用 Markdown 渲染 AttributedStrings。当直接字符串文字传递到文本中时,它似乎可以正确呈现,但当 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()
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果您将 Markdown 直接传递到 .SwiftUI 中Text.init()
,SwiftUI 会自动将其转换为AttributedString
.
但是,要从 Markdown 字符串转换为AttributedString
,您需要使用显式AttributedString(markdown:options:baseURL:)
初始化程序。例如:
var text = try! AttributedString(markdown: "**Hello**, `world`! Visit our [website](https://www.capitalone.com).\xe2\x80\x9d)\n
Run Code Online (Sandbox Code Playgroud)\n请注意,如果不能正确进行转换,则此初始化程序将抛出异常。I\xe2\x80\x99vetry!
在这里使用,因为你的示例 Markdown 肯定会转换,但根据 Markdown 文本的来源,你可能想要更智能地处理抛出的错误。
归档时间: |
|
查看次数: |
1336 次 |
最近记录: |