2017-04-19 27 views
-1

我怎麼知道這個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 
}() 
+1

你想達到什麼目的? –

+1

您是否想知道在設置寬度的textView中爲文本和字體設置的最小高度? – boidkan

+0

不,爲了垂直居中在UITextView中的文本我需要知道文本的高度 –

回答

4

您可以計算文本高度象下面這樣:

let sizeThatFitsTextView = textView.sizeThatFits(CGSize(width: textView.frame.size.width, height: CGFloat(MAXFLOAT))) 
let heightOfText = sizeThatFitsTextView.height 
1
在我的情況

我正在計算標籤

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

寬度我通過標籤的寬度 –

0

的高度,我發現我的this..in情況下,它的工作原理:

func returnStringWidth(font: UIFont, text: String) -> CGSize { 
    let fontAttributes = [NSFontAttributeName: font] 
    let size = (text as NSString).size(attributes: fontAttributes) 

    return size 
}