html – 为什么 – [UIWebView sizeThatFits:]给出比document.body.offsetHeightWidth更大的大小?

html – 为什么 – [UIWebView sizeThatFits:]给出比document.body.offsetHeightWidth更大的大小?,第1张

概述我试图使用UIWebView显示一些可变大小的内容,我想确定该内容的完整大小,以便我可以调整UIWebView的大小以完全适合内容的大小. 然而,我尝试确定内容的正确高度和宽度并非完全直截了当.以下尝试测试查找尺寸的方法…… - (void)viewDidLoad { [super viewDidLoad]; self.webView.backgroundColor = [UIColor 我试图使用UIWebVIEw显示一些可变大小的内容,我想确定该内容的完整大小,以便我可以调整UIWebVIEw的大小以完全适合内容的大小.

然而,我尝试确定内容的正确高度和宽度并非完全直截了当.以下尝试测试查找尺寸的方法……

- (voID)vIEwDIDLoad {  [super vIEwDIDLoad];  self.webVIEw.backgroundcolor = [UIcolor clearcolor];  Nsstring *content = @"<HTML><body style='background-color: transparent; wIDth: 300px; height: 500px'><div ID='Contentdiv'>Content Here</div></body></HTML>";  [self.webVIEw loadHTMLString:content baseURL:nil];  deBUGLog(@"Loading HTML string: %@",content);}- (voID)webVIEwDIDFinishLoad:(UIWebVIEw *)webVIEw {  Nsstring *bodyHeight = [self.webVIEw stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"];  Nsstring *bodyWIDth = [self.webVIEw stringByEvaluatingJavaScriptFromString:@"document.body.offsetWIDth"];  Nsstring *contentHeight = [self.webVIEw stringByEvaluatingJavaScriptFromString:@"document.getElementByID('Contentdiv').offsetHeight"];  Nsstring *contentWIDth = [self.webVIEw stringByEvaluatingJavaScriptFromString:@"document.getElementByID('Contentdiv').offsetWIDth"];  CGSize fittedSize = [self.webVIEw sizeThatFits:CGSizeZero];  deBUGLog(@"document.body.offsetHeight/WIDth: {%@,%@}",bodyWIDth,bodyHeight);  deBUGLog(@"document.getElementbyID('Contentdiv').offsetHeight/WIDth: {%@,contentWIDth,contentHeight);  deBUGLog(@"sizeThatFits: %@",NsstringFromCGSize(fittedSize));  self.webVIEw.frame = CGRectMake(0,[contentWIDth floatValue],[contentHeight floatValue]);}

…生成以下日志结果…

Loading HTML string: <HTML><body style='background-color: transparent; wIDth: 300px; height: 500px'><div ID='Contentdiv'>Content Here</div></body></HTML>document.body.offsetHeight/WIDth: {300,500}document.getElementbyID('Contentdiv').offsetHeight/WIDth: {300,20}sizeThatFits: {308,516}

虽然第一和第二个结果对我有意义 – 体型大小与style属性中的大小相匹配,而div大小与实际内容相符 – 第三个结果没有意义.实际上,UIWebVIEw似乎在某些边缘(在这种情况下,顶部,底部和左侧)上插入了8个像素的实际HTML内容,使得sizeThatFits:给出的拟合尺寸与JavaScript体高度不匹配/宽度结果.

任何人都可以对此作出解释,并可能是消除这些插入的方法吗?谢谢.

解决方法 如果您将HTML更改为此会发生什么?

Nsstring *content = @"<HTML><body style='background-color: transparent; wIDth: 300px; height: 500px; margin: 0; padding: 0;'><div ID='Contentdiv'>Content Here</div></body></HTML>";

我认为内容本身是正确的大小,但视口和身体之间存在导致差异的边界. (并且8px声音适用于默认的边缘边缘.)

总结

以上是内存溢出为你收集整理的html – 为什么 – [UIWebView sizeThatFits:]给出比document.body.offsetHeight / Width更大的大小?全部内容,希望文章能够帮你解决html – 为什么 – [UIWebView sizeThatFits:]给出比document.body.offsetHeight / Width更大的大小?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1076721.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存