Ios 如何使用Swift 3设置标签高度,以便在“阅读更多/更少”中自动调整?
我想创建一个段落,在结尾处多读/少读<这是我的代码Ios 如何使用Swift 3设置标签高度,以便在“阅读更多/更少”中自动调整?,ios,swift3,uilabel,nsattributedstring,Ios,Swift3,Uilabel,Nsattributedstring,我想创建一个段落,在结尾处多读/少读
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()
lbl.adjustsFontSizeToFitWidth = true
return lbl.frame.size.height
}
我还在属性检查器中设置标签“Word wrap”
问题是,当我在无读部分添加“NSLineBreakMode.byTruncatingHead”时,所有文本都完全显示出来。但是,文本中这些地方的一些单词消失了
因此,我删除该代码并运行该应用程序。在那个时候,文本并没有完全显示出来,只显示了一半。我一整天都在努力解决这个问题
我不想使用任何其他图书馆
有人能帮我吗?要按字体和宽度计算文本高度,可以使用此扩展名
extension UIFont {
func sizeOfString (_ string: String, constrainedToWidth width: CGFloat) -> CGSize {
return NSString(string: string).boundingRect(with: CGSize(width: width, height: CGFloat.greatestFiniteMagnitude),
options: NSStringDrawingOptions.usesLineFragmentOrigin,
attributes: [NSFontAttributeName: self],
context: nil).size
}
}
那就叫它
let width = 290.0
let textSize = UIFont.systemFont(ofSize: 15).sizeOfString("text", constrainedToWidth: width)
要按字体和宽度计算文本高度,可以使用此扩展名
extension UIFont {
func sizeOfString (_ string: String, constrainedToWidth width: CGFloat) -> CGSize {
return NSString(string: string).boundingRect(with: CGSize(width: width, height: CGFloat.greatestFiniteMagnitude),
options: NSStringDrawingOptions.usesLineFragmentOrigin,
attributes: [NSFontAttributeName: self],
context: nil).size
}
}
那就叫它
let width = 290.0
let textSize = UIFont.systemFont(ofSize: 15).sizeOfString("text", constrainedToWidth: width)
删除约束
lblReviewHeight
,然后尝试使用numberOfLines
控制文本布局,如果要显示所有描述集numberOfLines=0
,否则将numberOfLines
设置为所需的行。删除约束lblReviewHeight
,然后尝试使用numberOfLines
控制文本布局,如果您想显示所有描述集numberOfLines=0
,否则,将numberOfLines
设置为所需的行。bro我无法删除lblReviewHeight,因为当我单击“阅读更多/更少”按钮时,它控制标签的高度。@MayPhyu auto layout将自动为我们计算高度,如果您对该标签有正确的约束,这意味着如果您的标签具有正确的宽度约束
或前导
尾随或左
右或提供首选MaxLayoutWidth
则您将获得此标签的最佳
大小。bro我无法删除LBLReview,因为它控制标签的高度当我点击“阅读更多/更少”按钮时。@MayPhyu auto layout将自动为我们计算高度,如果您对该标签有正确的约束,这意味着如果您的标签具有正确的宽度约束
或前导
尾随或左
右
或给出首选MaxLayoutWidth
,您将得到此标签的最佳
大小。bro@VadimKozak,bro我应该删除或替换代码中的哪些代码bro?bro@VadimKozak,bro我应该删除或替换代码中的哪些代码bro?