如何在iOS15中关闭SwiftUI Text组件的Markdown自动渲染支持
兼容iOS14与iOS15的文本渲染方案
最优方案:使用Text(verbatim:)原生初始化
直接使用SwiftUI提供的纯文本专用初始化方法,不需要系统版本判断,也不需要手动转义特殊字符,两个系统版本均可正常渲染原始内容:
// 直接传入原始字符串即可,不会触发任何Markdown解析 Text(verbatim: "3+4*5, 6*7+8")
- 该初始化方法从iOS13开始就已支持,设计目的就是原样输出输入的字符串内容,iOS15新增的Markdown自动解析逻辑对其完全不生效,既不会把星号识别为斜体标记,也不会出现多余的转义反斜杠。
备选方案:版本分支适配
如果存在特殊业务需求需要用到普通Text初始化,可以通过系统版本判断分别处理:
if #available(iOS 15, *) { // iOS15及以上传入转义后的字符串 Text("3+4\\*5, 6\\*7+8") } else { // iOS14及以下传入原始字符串 Text("3+4*5, 6*7+8") }
- 该方案需要为每个含特殊字符的字符串维护两份内容,维护成本更高,非必要场景不推荐使用。
内容的提问来源于stack exchange,提问作者FriedPotato
相关产品推荐
相关产品推荐

