Comments (6)
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))
from swiftrichstring.
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.
}
}
`
from swiftrichstring.
Additionally, according to my test. " .sizeThatFits" works for text resource but not for image resource.
from swiftrichstring.
try .height?
from swiftrichstring.
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
from swiftrichstring.
对不起我的愚蠢错误。但是 .height 仍然没有给我正确的高度。 我打算放弃并改用 WKWebView。 那就太感谢了
下面链接中是我总结计算富文本高度的文章
https://blog.csdn.net/u014651417/article/details/124764887?spm=1001.2014.3001.5501
from swiftrichstring.
Related Issues (20)
- XMLStringBuilderError Failed to generate attributed string iOS Swift
- Question: Handling multiple/nested tags
- Strikethrough is not working on iOS 14 HOT 2
- DynamicType not working in a UITableViewCell that reuses a style
- 'localizedLowercase' is only available in macOS 10.11 or newer
- When using a StyleGroup, the ParagraphStyles are not inherited from the base style.
- Allow users to overload style property observer
- Image attachment's bounds takes a String instead of CGRect HOT 1
- Table support
- No line breaks after paragraphs HOT 3
- iOS 15 Compatibility HOT 2
- After updating Xcode to 13 beta 5, getting ambiguous error HOT 3
- Xcode 13 run bugs: 'AttributedString' is ambiguous for type lookup in this context HOT 2
- How to not apply parent tag's style to child ones?
- 支持拼音+文字同时显示吗
- Using img tags to use an image from another bundle doesn't work.
- Support gif file
- FEATURE REQUEST: A font "size" attribute within StandardXMLAttributesResolver would be immensely useful.
- AsyncTextAttachment并不能很好的支持UILabel, 将Demo中的UITextView替换成UILabel, 无法显示图片, HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from swiftrichstring.