iOS UILabel設置行間距和字間距


實現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屬性 就行了。

 

參考網絡:

 

 

enjoy~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM