Open X-Trafa opened 4 years ago
Did you try setting the UITextView's scrolling off?
textView.textContainerInset = .zero textView.textContainer.lineFragmentPadding = 0 textView.isScrollEnabled = false
textView.sizeThatFits(.init(width: width, height: .greatestFiniteMagnitude))
Really appreciate for your replying. But I've tried your solution which still doesn't work. Could please help me out? Code as follow: ` import UIKit import SwiftRichString import SnapKit
class ViewController: UIViewController {
var textView = UITextView()
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.white
self.view.addSubview(textView)
textView.backgroundColor = .black
textView.snp.makeConstraints { (maker) in
maker.top.equalTo(self.view.safeAreaLayoutGuide).offset(20)
maker.width.left.equalTo(self.view)
maker.height.equalTo(800)
}
let taggedText = """
This other is loaded from remote URL This other is loaded from remote URL This other is loaded from remote URL This other is loaded from remote URL This other is loaded from remote URL:
<img url="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1601572902181&di=7b0ddfd1460945c25e811691fcd5a710&imgtype=0&src=http%3A%2F%2Fimg1.imgtn.bdimg.com%2Fit%2Fu%3D2584119826%2C556593725%26fm%3D214%26gp%3D0.jpg"/>
"""
let styleBase = Style({
$0.font = UIFont.boldSystemFont(ofSize: 15)
})
let styleBold = Style({
$0.font = UIFont.boldSystemFont(ofSize: 20)
$0.color = UIColor.blue
})
let groupStyle = StyleXML.init(base: styleBase, ["b" : styleBold])
textView.attributedText = taggedText.set(style: groupStyle)
textView.textContainerInset = .zero
textView.textContainer.lineFragmentPadding = 0
textView.isScrollEnabled = false
let newheight = textView.sizeThatFits(.init(width: self.view.frame.width, height: .greatestFiniteMagnitude)).width
textView.snp.updateConstraints { (maker) in
maker.height.equalTo(newheight)
}
print(newheight)
// Do any additional setup after loading the view.
}
} `
Additionally, according to my test. " .sizeThatFits" works for text resource but not for image resource.
try .height?
Sorry for my stupid mistake. But .height still doesn't give me the right height. I am planing to give up and use WKWebView instead. Thanks a lot then
对不起我的愚蠢错误。但是 .height 仍然没有给我正确的高度。 我打算放弃并改用 WKWebView。 那就太感谢了 下面链接中是我总结计算富文本高度的文章 https://blog.csdn.net/u014651417/article/details/124764887?spm=1001.2014.3001.5501
I have a rich string with a remote long picture inside. But how can I get the height of the picture or the textVIew? (Width is known) I have tried UITextView.sizeThatFits(<size: CGSize). It's not working.