美文网首页
Swiftui实现richtext字符串并对高亮子字符串添加点击

Swiftui实现richtext字符串并对高亮子字符串添加点击

作者: adrian920 | 来源:发表于2024-01-04 15:35 被阅读0次

如何仅仅是对部分字符高亮,不需要点击,Group就能实现

Group{Text(“xxx”) + Text(“yyy”)}

使用Group,拼成的Text还可以自动换行
但是,如果想要对高亮的字符串进行点击操作,就要用到AttributedString,下面是一个简单的例子:

var text1: AttributedString {
        var text = AttributedString(localized:"登录即表示同意")
        text.foregroundColor = .gray
        return text
    }
    var text2: AttributedString {
        var text = AttributedString(localized:"用户协议")
        text.link = URL(string: "111")
        text.foregroundColor = .red
        return text
    }
    var text3: AttributedString {
        var text = AttributedString(localized:"和")
        text.foregroundColor = .gray
        return text
    }
    var text4: AttributedString {
        var text = AttributedString(localized:"隐私协议")
        text.link = URL(string: "222")
        text.foregroundColor = .red
        return text
    }
    
    var text: AttributedString {
        text1 + text2 + text3 + text4
    }
 var body: some View {
       
        VStack {
            Text(text)
                .environment(\.openURL, OpenURLAction { url in
                    let path = url.absoluteString
                    if path.hasPrefix("111") {
                        print("111...")
                    } else if path.hasPrefix("222") {
                        print("222...")
                    }
                       return .handled
                   })
        }

相关文章

  • Flask-cache小贴士

    原文请点击这里 设置失效时间,单位秒 代码中添加缓存 模板中添加缓存 模板缓存时,缓存的部分会生成html字符串并...

  • 字符串及内部的操作函数解释

    字符串 字符串可以进行运算:+(实现字符串之间的拼接)、*(实现字符串的多次输出) 声明字符串 包含在一对单引号、...

  • 字符串格式化

    字符串格式化 到目前为止,要组合字符串和非字符串,将非字符串转换为字符串并添加它们。 字符串格式化提供了一种更强大...

  • 编程:删除字符串A中包含的字符串B

    题目:写一段程序实现,从字符串A中删除字符串B,比如从“abcefomadm"中删除”ab",并对代码进行测试代码...

  • SwiftUI 教程 1.1 文本与图片

    Text 本地化字符串 SwiftUI 中涉及到字符串的地方,基本都支持普通的字符串和本地化字符串。Text 的初...

  • Hive中UDTF的实现方式调研

    简单UDTF的实现 实现基于切割字符串并生成多行数据。

  • :before和:after伪元素的常见用法总结

    利用content属性,为元素添加内容修饰: 1) 添加字符串:使用引号包括一段字符串,将会向元素内容中添加字符串...

  • 第25章 事件作业

    补全代码,要求: 当点击按钮开头添加时在 这里是 元素前添加一个新元素,内容为用户输入的非空字符串;当点击结尾添加...

  • Flutter-RichText的使用,并在上面添加手势

    Flutter-RichText的使用,并在上面添加手势 1、RichText的定义 RichText在Flutt...

  • Redis

    字符串 构造方法 不同长度的字符串采用不同数据结构记录其长度 字符串追加方法 列表 通过链表结构实现,高插入、删除...

网友评论

      本文标题:Swiftui实现richtext字符串并对高亮子字符串添加点击

      本文链接:https://www.haomeiwen.com/subject/vokbndtx.html