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

时间:2016-03-18 08:22:41

标签: ios objective-c

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

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

1 个答案:

答案 0 :(得分:3)

将其加载到NSAttributedString,然后使用boundingRectWithSize来获取大小。 (注意:幕后NSAttributedString将数据传递给Web视图以呈现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];