阅读更多/更少使用Swift 3

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

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

  • messageLabel创建高度约束的出口
  • 将“阅读更多”按钮的顶部布局设置为messageLabel
  • 单击“Read more”按钮增加高度约束常数,单击“Read less”减小高度约束常量。

     @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 } 
Interesting Posts