如何通过加载html字符串数据来了解textView内容高度?

时间:2017-11-27 02:03:34

标签: ios swift uiview textview

我有html字符串数据,我在textview中显示它 但是我想知道关于我的html数据的textView内容高度 因为我想将textview添加为UIScrollView的子视图以显示数据 我还希望textview不滚动,并向用户显示所有数据。

所以,我需要知道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)
}

1 个答案:

答案 0 :(得分:1)

尝试此函数以获取标签的高度,然后将该高度传递给textView。希望这能解决你的问题。

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 
}