Swift 富文本 设置行间距 字符间距

  • 给UILabel、UITextView等文本设置行间距、字间距等,一般都是通过设置其attributedText属性进行实现

1. 给String进行扩展

extension String{
/// 富文本设置 字体大小 行间距 字间距
    func attributedString(font: UIFont, textColor: UIColor, lineSpaceing: CGFloat, wordSpaceing: CGFloat) -> NSAttributedString {
        
        let style = NSMutableParagraphStyle()
        style.lineSpacing = lineSpaceing
        let attributes = [
                NSAttributedString.Key.font             : font,
                NSAttributedString.Key.foregroundColor  : textColor,
                NSAttributedString.Key.paragraphStyle   : style,
                NSAttributedString.Key.kern             : wordSpaceing]
            
            as [NSAttributedString.Key : Any]
        let attrStr = NSMutableAttributedString.init(string: self, attributes: attributes)
        
        // 设置某一范围样式
        // attrStr.addAttribute(<#T##name: NSAttributedString.Key##NSAttributedString.Key#>, value: <#T##Any#>, range: <#T##NSRange#>)
        return attrStr
    }
}

Swift 富文本 设置行间距 字符间距

注意 段落样式中可已设置的属性许多,常用的有:

// style.lineSpacing – 行间距
// style.lineBreakMode – 分割样式
// style.alignment – 对齐方式
// style.firstLineHeadIndent – 首行缩进

等等

2. 使用方式


let tempStr = "哈哈哈哈哈哈哈哈哈哈"
let label = UILabel()
//给 tempStr 设置 样式
label.attributedText = tempStr.attributedString(font: .systemFont(ofSize: 14), textColor: .red, lineSpaceing: 10, wordSpaceing: 1.5)

3. 其他: 给某一区间字符设置样式

  • 通过这种方式可以设置一个字符串中多种字体颜色、字体大小等
    addAttribute(NSAttributedString.Key, value: Any, range: NSRange)

 //给attrStr 前十个字符设置为红色
 attrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.red, range: NSRange(location: 0, length: 10))

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容