SwiftUI-Markdown渲染

介绍

在现代 App 中,富文本展示已成为不可或缺的功能。无论是显示用户评论、展示文档内容,还是渲染应用说明,均需要一种简洁而强大的方式来处理文本格式。SwiftUI 在 iOS 15 中引入了对 Markdown 的原生支持,让开发者能够轻松地在应用中渲染格式化文本。

语法

SwiftUI 主要支持以下内联 Markdown 样式。

  • 加粗文本。
swift 复制代码
Text("**加粗**")
  • 斜体文本。
swift 复制代码
Text("*斜体*")
  • 删除线。
swift 复制代码
Text("~~删除线~~")
  • 内联代码。
swift 复制代码
Text("`Hello World`")
  • 链接。
swift 复制代码
Text("[Apple](https://www.apple.com/)")
    .accentColor(.orange) // 自定义链接颜色

案例

  • 代码。
swift 复制代码
import SwiftUI

struct ContentView: View {
    let markdownString: String = "**WWDC21** ~~SwiftUI~~"
    let markdownStringKey: LocalizedStringKey = "**WWDC21** ~~SwiftUI~~"
    
    var body: some View {
        VStack(spacing: 20) {
            // 直接在Text中使用Markdown语法
            Text("**WWDC21 SwiftUI**")
            
            Text("*WWDC21 SwiftUI*")
            
            Text("`print('WWDC21 SwiftUI')`")
            
            Text("~~WWDC21 SwiftUI~~")
                
            // 链接支持
            Text("[WWDC21](https://developer.apple.com/wwdc21/)")
                .accentColor(.orange)
            
            // String
            Text(.init(markdownString))
            
            // LocalizedStringKey
            Text(markdownStringKey)
        }
        .padding()
    }
}
  • 效果。

总结

SwiftUI 对 Markdown 的原生支持,使开发者可以更专注于内容与用户体验,而无需借助额外的富文本库。虽然当前的 Markdown 功能仍有一定局限,但对于大多数日常应用场景而言,已经足够实用。未来随着 SwiftUI 的不断演进,我们有望看到更丰富的 Markdown 功能支持。

相关推荐
大熊猫侯佩1 天前
SwiftUI 6.0(iOS 18)自定义容器值(Container Values)让容器布局渐入佳境(下)
swiftui·swift·apple
大熊猫侯佩1 天前
用接地气的例子趣谈 WWDC 24 全新的 Swift Testing 入门(二)
单元测试·swift·apple
我现在不喜欢coding1 天前
swift中的self,Self,Class(struct).Type让你头大了嘛?
ios·swift
不二狗1 天前
每日算法 -【Swift 算法】查找字符串数组中的最长公共前缀
开发语言·算法·swift
不二狗1 天前
每日算法 -【Swift 算法】将整数转换为罗马数字
开发语言·算法·swift
InternLM1 天前
论文分类打榜赛Baseline:ms-swift微调InternLM实践
swift·internlm·书生
我现在不喜欢coding2 天前
swift为什么会需要mutating关键字
swift