如何计算我的UITextView中文本的高度?
问题描述:
我怎么知道这个textView里面的文本的高度?如何计算我的UITextView中文本的高度?
lazy var textView: UITextView = {
let tv = UITextView()
tv.textColor = .white
tv.translatesAutoresizingMaskIntoConstraints = false
tv.isEditable = false
tv.backgroundColor = .white
tv.text = "Se non vuoi vedere di nuovo questa presentazione clicca sul bottone qui sotto..."
tv.textAlignment = .center
tv.font = UIFont(name: "Avenir-Light", size: 22)
return tv
}()
答
您可以计算文本高度象下面这样:
let sizeThatFitsTextView = textView.sizeThatFits(CGSize(width: textView.frame.size.width, height: CGFloat(MAXFLOAT)))
let heightOfText = sizeThatFitsTextView.height
答
在我的情况
我正在计算标签
func heightForLabel(text:String, font:UIFont, width:CGFloat) -> CGFloat
{
let label:UILabel = UILabel(frame: CGRect(x: 0, y: 0, width: width, height: CGFloat.greatestFiniteMagnitude))
label.numberOfLines = 0
label.lineBreakMode = NSLineBreakMode.byWordWrapping
label.font = font
label.text = text
label.sizeToFit()
return label.frame.height
}
+0
您传递给函数的参数宽度,究竟是什么? –
+0
宽度我通过标签的宽度 –
答
的高度,我发现我的this..in情况下,它的工作原理:
func returnStringWidth(font: UIFont, text: String) -> CGSize {
let fontAttributes = [NSFontAttributeName: font]
let size = (text as NSString).size(attributes: fontAttributes)
return size
}
你想达到什么目的? –
您是否想知道在设置宽度的textView中为文本和字体设置的最小高度? – boidkan
不,为了垂直居中在UITextView中的文本我需要知道文本的高度 –