ios – 使用Swift 3阅读更多/更少

我想在段落的末尾添加“阅读更多”.当我点击“阅读更多”文本时,它应该展开并在结尾显示“Less”.

单击“Less”文本时,文本将折叠.

《ios – 使用Swift 3阅读更多/更少》

我在谷歌找到了很多样本​​.但是,我不清楚,大多数项目都是用Objective-C实现的.我也在youtube中找到它.
 我想知道使用Swift 3实现这个的非常示例代码.
我可以不使用任何额外的库来实现吗?
 请帮我.

最佳答案 >为messageLabel的高度约束创建一个出口

>将“阅读更多”按钮的顶部布局设置为messageLabel

>单击“读取更多”按钮增加高度约束常数,单击“减少读取”减少高度约束常量.

@IBOutlet weak var btn: UIButton!

@IBOutlet weak var lblHeight: NSLayoutConstraint!

var isLabelAtMaxHeight = false

@IBAction func btnAction(_ sender: Any) {
    if isLabelAtMaxHeight {
        btn.setTitle("Read more", for: .normal)
        isLabelAtMaxHeight = false
        lblHeight.constant = 70
    }
    else {
        btn.setTitle("Read less", for: .normal)
        isLabelAtMaxHeight = true
        lblHeight.constant = getLabelHeight(text: yourSummaryText, width: view.bounds.width, font: yourSummaryLabel.font)
    }
}

获取文本的高度

    func getLabelHeight(text: String, width: CGFloat, font: UIFont) -> CGFloat {
        let lbl = UILabel(frame: .zero)
        lbl.frame.size.width = width
        lbl.font = font
        lbl.numberOfLines = 0
        lbl.text = text
        lbl.sizeToFit()

        return lbl.frame.size.height
    }
点赞