美文网首页iOS
iOS Swift3.0 富文本的使用 -- 改变行间距、添加

iOS Swift3.0 富文本的使用 -- 改变行间距、添加

作者: 上个月 | 来源:发表于2017-06-16 14:59 被阅读1152次

    最近自己在写一个SwiftApp, 涉及到富文本这块, 上镜率也不是很高, 稍微做下笔记

    效果图 输出板
        // 1.定义一个字符串 
        // 将String类型转换成 NSString,否则在第五步获取range时类型转换很麻烦
        let contentStr = " Swift3.0 富文本的使用@111111,改变行间距、添加点击事件@222222"  as NSString
        // 2.初始化富文本
        let nameStr : NSMutableAttributedString = NSMutableAttributedString(string:contentStr as String)
         
        // 3.添加样式 (行间距和对其方式)
        let paragraphStyle = NSMutableParagraphStyle()
        paragraphStyle.lineSpacing = 6
        paragraphStyle.alignment = .left
        // 4.行间距
        nameStr.addAttribute(NSParagraphStyleAttributeName, value: paragraphStyle, range: NSMakeRange(0, contentStr.length))
        // 5.关键代码 添加事件
        let range = contentStr.range(of: "@111111", options: .regularExpression, range: NSMakeRange(0,contentStr.length))
        let range1 = contentStr.range(of: "@222222", options: .regularExpression, range: NSMakeRange(0,contentStr.length))
        nameStr.addAttribute(NSLinkAttributeName, value: "frist://", range: range)
        nameStr.addAttribute(NSLinkAttributeName, value: "second://", range: range1)
        
        // 6.赋值
        textView.attributedText = nameStr
    
        textView.isEditable = false
        textView.delegate = self  
        textView.font = UIFont.systemFont(ofSize: 12)
        youView.addSubview(textView)
        textView.snp.makeConstraints { (make) in
            //...
        }
    

    然后在UITextViewDelegate中处理事件

        // MARK: - UITextViewDelegate
        func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange) -> Bool { 
            if URL.scheme == "frist" {
                print("点击@111111")
                return false
            }
            if URL.scheme == "second" {
                print("点击222222")
                return false
            }
            return true
        }  
    

    暂时涉及到的用法就这些, 以后用得到继续补充

    相关文章

      网友评论

        本文标题:iOS Swift3.0 富文本的使用 -- 改变行间距、添加

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