阅读更多/更少使用Swift 3 [英] Read More/Less with Swift 3
问题描述
我想在段落末尾添加了解更多。当我点击阅读更多文本时,应该展开并在结尾处显示 Less 。
单击Less文本时,文本将折叠。
I want to add "Read more" at the end of the paragraph. When I click on the "Read more" text, it should be expand and display "Less" at the end.
The texts will be collapsed when click on "Less" text.
我在谷歌找到了许多样本工作。但是,我不清楚,大多数项目都是用Objective-C实现的。我也在youtube中找到它。
我想知道用 Swift 3 实现这个的非常示例代码。
我可以在不使用任何额外库的情况下实现吗?
请帮助我。
I find many sample work in google. But, I don't understand clearly and most projects are implemented with Objective-C. I also find it in youtube.
I would like know very sample code to implement this with Swift 3.
Can I implement without using any additional library?
Please help me.
推荐答案
- 为高度限制创建一个出口你的
messageLabel
- 将阅读更多按钮的顶部布局设置为
messageLabel
-
点击阅读更多按钮增加高度约束常数,点击减少阅读减少高度约束常数。
- Create an outlet for height constraint of your
messageLabel
- Set top layout of your "Read more" button to
messageLabel
On clicking "Read more" button increase height constraint constant, on clicking "Read less" decrease height constraint constant.
@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) } }
- Create an outlet for height constraint of your
获取文字高度
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
}
这篇关于阅读更多/更少使用Swift 3的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!