然而,我尝试确定内容的正确高度和宽度并非完全直截了当.以下尝试测试查找尺寸的方法……
- (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更大的大小?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)