根据它的内容计算的UIWebView高度(Calculate UIWebView height de

2019-06-24 17:03发布

我有一个类命名Announcement ,它有一个TitleNSString ),一个Publishing DateNSString )和BodyNSString与HTML内容)。

我想以同样的方式就像在电子邮件应用程序中显示。 当您阅读电子邮件,你有前三“行”(发件人,收件人,标题[日]),然后在电子邮件的内容。

我只希望创建“标题[日]”行,然后身体。 我想,这是一个UITableView这对第一个单元格我的Title ,并在第二小区的UIWebView

但它似乎是细胞具有的准确高度UIWebView ,所以我的问题是这样的:

如何计算我的高度UIWebView这取决于我的Body ? 因为基本上,当你垂直滚动滚动整个UITableView ,当你水平滚动滚动只有UIWebView内容。

谢谢

Answer 1:

在web视图的委托方法,只需用下面的代码试试:

- (void)webViewDidFinishLoad:(UIWebView *)webView{
    [webviewTopicDesc sizeToFit];
    [webviewTopicDesc setFrame:CGRectMake(webviewTopicDesc.frame.origin.x, webviewTopicDesc.frame.origin.y, 300.0, webviewTopicDesc.frame.size.height)];
}

在此之前,让web视图高度5.0。

希望它可以帮助你。

在这里,你可以得到基于字符串动态的高度。

-(CGSize)getDynemicHeight:(int)pintFixWidth :(NSString *)pstrText
{
CGSize maximumSize=CGSizeMake(pintFixWidth, g_Max_Width);
UIFont *myFont = [UIFont fontWithName:g_Default_Font_Name size:g_Default_Font_Size];// font used for label
myFont=[UIFont boldSystemFontOfSize:g_Default_Font_Size];

CGSize sizeS = [pstrText sizeWithFont:myFont 
                   constrainedToSize:maximumSize 
                       lineBreakMode:UILineBreakModeWordWrap];

sizeS.height=sizeS.height+39;

return sizeS;
}

在这里,你必须解决的宽度和字体大小与字体风格。

也许它可以帮助你。



Answer 2:

有找到一个高度的几种方法UIWebView的内容。

这里有几个指针开始:

如何确定基于内容的UIWebView高度,可变高度UITableView的范围内?

如何确定一个UIWebView的内容大小?

iPhone -得到的UIWebView的内容大小

请注意,使用UIWebViewUITableView不一定是一个很好的主意,特别是如果你有很多Announcements ,通过在同一个滚动UITableView 。 如果你表现出每只有一个公告UITableView ,你应该能够逃脱它,但对于很多细胞的表来通过,滚动使用的细胞可以网页视图导致不好的性能问题。

苹果还建议不要使用嵌入UIWebViews / UITableViews / UIScrollViews

从一个UIWebView类参考 :

重要提示 :你不应该嵌入的UIScrollView对象的UIWebView或UITableView的对象。 如果这样做,可能会导致意外的行为,因为这两个物体的触摸事件可以混合起来,并错误地处理。

我的2美分:)



文章来源: Calculate UIWebView height depending on its content