2017-04-19 8 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

너비에서 Label의 너비를 전달하고 있습니다. –

0

의 높이를 계산하고 내가 내 경우 this..in 발견 그것은 작동 :

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

    return size 
}