iOS UILabel设置行间距和字间距

时间:2022-07-01 06:08:48

实现UILabel的文字,设置行间距和字间距。 

效果图:

iOS UILabel设置行间距和字间距

代码:

        let lblTitle = UILabel(frame: CGRect(x: 10, y: 150, width: KScreenWidth-20, height: 100))
lblTitle.textColor
= UIColor.white
lblTitle.backgroundColor
= UIColor.darkGray
lblTitle.textAlignment
= .center
lblTitle.numberOfLines
= 0
lblTitle.font
= UIFont.systemFont(ofSize: 12)
lblTitle.text
= "SDCycleScrollView之前一直在OC中使用觉得很简单又熟悉了所以这次写的Demo依旧搬了过来.SDCycleScrollView之前一直在OC中使用觉得很简单又熟悉了所以这次写的Demo依旧搬了过来."
self.view.addSubview(lblTitle)

let attrStr
= NSMutableAttributedString(string: lblTitle.text!)
//设置行间距
let style:NSMutableParagraphStyle = NSMutableParagraphStyle()
style.lineSpacing
= 10 //行间距(垂直上的间距)
style.lineBreakMode = .byCharWrapping //英文字符拆开显示,byWordWrapping表示不拆开显示
style.alignment = .center //居中显示(如果要设置alignment,这个必须设置,因为label的textAlignment会无效)
style.firstLineHeadIndent = 25.0 //设置首行字符缩进距离
style.headIndent = 5 //每行的左右间距
attrStr.addAttribute(NSParagraphStyleAttributeName, value: style, range: NSRange(location: 0, length: (lblTitle.text?.characters.count)!))
//设置字间距
attrStr.addAttribute(NSKernAttributeName, value: 1.5, range: NSRange(location: 0, length: (lblTitle.text?.characters.count)!))
lblTitle.attributedText
= attrStr

 

以上的参数,都可以自己根据需求封装方法。

行间距:lineSpacing

字间距:NSKernAttributeName 的value值

其他。。。

 

最后,如果要计算设置后的高度或size

把 NSParagraphStyleAttributeName、NSKernAttributeName两个属性设置完毕后,再作为 boundingRectWithSize 方法的 attributes属性 就行了。

 

参考网络:

iOS UILabel设置行间距和字间距

 

 

enjoy~