如何在末尾使用 Read More/Read Less 创建段落(在标签中)?
How to create the paragraph (in label) with Read More/Read Less at the end?
我想创建段落(在标签中)并在末尾阅读 More/Read Less。我是 iPhone 应用程序开发的初学者。
这是我的代码...
我在 else 条件下遇到错误错误是 "Value of type NSLayoutConstraint" has no member 'font'" at lbl.contant = getheight....
@IBOutlet weak var lbl: NSLayoutConstraint!
@IBOutlet weak var btn: UIButton!
var isLabelAtMaxHeight = false
@IBAction func ButtonAction(_ sender: Any) {
if isLabelAtMaxHeight {
btn.setTitle("Read more", for: .normal)
isLabelAtMaxHeight = false
lbl.constant = 70
}
else {
btn.setTitle("Read less", for: .normal)
isLabelAtMaxHeight = true
lbl.constant = getHeightOfLabel(text:"Isn't it? How to do? I'm sorry I don't know how to solve this exactly. :( – May Phyu Feb 20 at 11:16 No, i dont mean like that. When you set text to label then U have to find height of label then assign that height to label with setting property number of lines = 0 – Jitendra Modi Feb 20 at 11:31" , width:
view.bounds.width, font: lbl.font)
}
}
func getHeightOfLabel(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
}
- 为段落标签的高度限制创建一个出口。
- 将 "Read more" 按钮的顶部布局设置为 paragraphLabel。
点击 "Read more" 按钮增加高度约束常数,点击 "Read less" 减少高度约束常数。
@IBOutlet weak var btn: UIButton!
@IBOutlet weak var yourParagraphLabel: UILabel!
@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 = getHeightOfLabel(text: yourParagraphText, width:
view.bounds.width, font: yourParagraphLabel.font)
}
}
获取文本的高度
func getHeightOfLabel(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
}
我想创建段落(在标签中)并在末尾阅读 More/Read Less。我是 iPhone 应用程序开发的初学者。
这是我的代码... 我在 else 条件下遇到错误错误是 "Value of type NSLayoutConstraint" has no member 'font'" at lbl.contant = getheight....
@IBOutlet weak var lbl: NSLayoutConstraint!
@IBOutlet weak var btn: UIButton!
var isLabelAtMaxHeight = false
@IBAction func ButtonAction(_ sender: Any) {
if isLabelAtMaxHeight {
btn.setTitle("Read more", for: .normal)
isLabelAtMaxHeight = false
lbl.constant = 70
}
else {
btn.setTitle("Read less", for: .normal)
isLabelAtMaxHeight = true
lbl.constant = getHeightOfLabel(text:"Isn't it? How to do? I'm sorry I don't know how to solve this exactly. :( – May Phyu Feb 20 at 11:16 No, i dont mean like that. When you set text to label then U have to find height of label then assign that height to label with setting property number of lines = 0 – Jitendra Modi Feb 20 at 11:31" , width:
view.bounds.width, font: lbl.font)
}
}
func getHeightOfLabel(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
}
- 为段落标签的高度限制创建一个出口。
- 将 "Read more" 按钮的顶部布局设置为 paragraphLabel。
点击 "Read more" 按钮增加高度约束常数,点击 "Read less" 减少高度约束常数。
@IBOutlet weak var btn: UIButton! @IBOutlet weak var yourParagraphLabel: UILabel! @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 = getHeightOfLabel(text: yourParagraphText, width: view.bounds.width, font: yourParagraphLabel.font) } }
获取文本的高度
func getHeightOfLabel(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 }