2017-11-27 5 views
0

나는 html 문자열 데이터를 가지고 있으며이를 텍스트 뷰로 보여줍니다.
하지만 내 HTML 데이터에 대한 textView 콘텐츠 높이를 알고 싶습니다.
UIScrollView의 하위보기로 textview를 추가하여 데이터를 표시하려고합니다.
저는 textview를 스크롤하지 않고 모든 데이터를 사용자에게 보여주고 싶습니다.

그래서 저는 textview의 높이를 알아야합니다.
나에게 궁금한 점이 있으십니까?
감사합니다.html 문자열 데이터를로드하여 textView 콘텐츠 높이를 알아 보는 방법은 무엇입니까?

do { 
    let attrStr = try NSAttributedString(
     data: htmlString.data(using: String.Encoding.unicode, allowLossyConversion: true)!, 
     options: [ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType], documentAttributes: nil) 
     self.textView.attributedText = attrStr //how to know the height about the content? 
} catch let error { 
    print(error) 
} 
+0

textView.isScrollEnabled = false를 설정하고 높이를 제한하지 않으면 내용에 맞게 자동으로 크기가 조정됩니다. –

답변

1


라벨의 높이를 가져온 다음 텍스트 뷰에 그 높이를 전달하는이 기능을 사용해보십시오. 희망이 당신의 문제를 해결할 것입니다.

func heightForHtmlString(_ text: NSMutableAttributedString, font:UIFont) -> CGFloat { 
    let label:UILabel = UILabel.init(frame: CGRect.init(x: 0, y: 0, width: 200, height: CGFloat.greatestFiniteMagnitude)) 
    label.numberOfLines = 0 
    label.lineBreakMode = NSLineBreakMode.byWordWrapping 
    label.font = font 
    label.attributedText = text as NSAttributedString 
    label.sizeToFit() 
    return label.frame.height 
} 
관련 문제