ios - 如何获取将要呈现的 HTML 字符串的高度?

标签 ios objective-c

我动态地让 html 字符串稍后在 PDF 上呈现。在将它呈现为 PDF 之前,我想先计算它的高度,这样我就可以将一些 HTML 移到下一页。

它在 Objective C 中可行吗?我不想先将 HTML 字符串加载到 Web View 来计算高度,如回答 here , 因为生成动态 HTML 字符串的内存消耗非常高。

最佳答案

将其加载到 NSAttributedString 中,然后使用 boundingRectWithSize 获取大小。 (注意:在幕后 NSAttributedString 将数据传递给 Web View 以呈现 HTML)

NSAttributedString *attrStr = [[NSAttributedString alloc] initWithData:[htmlString dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
CGSize size = CGSizeMake(width, 0);
CGRect rect = [attrStr boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading context:nil];

关于ios - 如何获取将要呈现的 HTML 字符串的高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36079408/

相关文章:

ios - UIButton (IB) 中的属性 titleLabel 不尊重 setFont

objective-c - iOS 呈现基于模式和导航 Controller 的 View

objective-c - 在加载主应用程序 View 之前获取一些设备信息

ios - IBAction 在升级到(SDK 8.1,Xcode 6)后没有被调用

ios - 如何在修改路径时重绘 CAShapeLayer?

iOS 应用程序在后台显示通知,但不在前台 iPhone 4s 和操作系统版本 9.3

html - IOS Safari 以不同方式显示文本颜色

ios - 是否可以使用静默推送来唤醒APP并接听VOIP电话?

ios - 将数组添加到 PLIST

ios - Adcolony 不工作(iOS)