如何在Swift 4中增加UILabel的行间距

时间:2018-04-21 08:55:14

标签: swift xcode uilabel nsparagraphstyle line-spacing

我想在UILabel中增加行间距,但我无法弄清楚如何。

我在Stackoverflow上找到了这个解决方案[https://stackoverflow.com/a/39158698/8633963],但我的Xcode始终显示:

Use of unresolved identifier 'NSParagraphStyleAttributeName'

我认为答案是正确的,但它对我不起作用。 任何人都可以帮忙解决这个问题吗?

4 个答案:

答案 0 :(得分:3)

在这种情况下,在Swift 4中,您必须使用NSAttributedStringKey.paragraphStyle代替NSParagraphStyleAttributeName

答案 1 :(得分:1)

快捷键5

import UIKit

extension UILabel {
    
    func setLineHeight(lineHeight: CGFloat) {
        let text = self.text
        if let text = text {
            let attributeString = NSMutableAttributedString(string: text)
            let style = NSMutableParagraphStyle()
            
            style.lineSpacing = lineHeight
            attributeString.addAttribute(NSAttributedString.Key.paragraphStyle, value: style, range: NSMakeRange(0, attributeString.length))
            self.attributedText = attributeString
        }
    }

}

答案 2 :(得分:0)

查看这个可笑的简单解决方案!

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! CommentTVCCell

    // Configure the cell...


    cell.myLabel?.text = "\n[\(indexPath.row + 1)]\n\n" + itemArray[indexPath.row].name

    //

    return cell 
}

//请注意使用\ n加载返回值或任意数量的返回值。确保它们在字符串名称之内。

答案 3 :(得分:0)

这对我有用。

import UIKit

    extension UILabel {

        func setLineHeight(lineHeight: CGFloat) {
            let text = self.text
            if let text = text {
                let attributeString = NSMutableAttributedString(string: text)
                let style = NSMutableParagraphStyle()

                style.lineSpacing = lineHeight
                attributeString.addAttribute(NSParagraphStyleAttributeName, value: style, range: NSMakeRange(0, count(text)))
                self.attributedText = attributeString
            }
        }
    }