我有一个名为Announcement
的班级,它有Title
(NSString
),Publishing Date
(NSString
)和Body
(NSString
包含HTML内容)。
我想以类似于电子邮件应用中的方式显示它。当您阅读电子邮件时,您有前三个“行”(从,到,标题[日期]),然后是电子邮件的内容。
我想只创建“Title [date]”行然后创建正文。我想它是UITableView
,它在第一个单元格Title
上,在第二个单元格上有UIWebView
。
但似乎单元格的高度恰好是UIWebView
,所以我的问题是:
如何根据UIWebView
计算Body
的高度?因为基本上当您垂直滚动时滚动整个UITableView
,当您水平滚动时,只滚动UIWebView
内容。
由于
答案 0 :(得分:4)
在webview委托方法中,只需尝试使用以下代码:
- (void)webViewDidFinishLoad:(UIWebView *)webView{
[webviewTopicDesc sizeToFit];
[webviewTopicDesc setFrame:CGRectMake(webviewTopicDesc.frame.origin.x, webviewTopicDesc.frame.origin.y, 300.0, webviewTopicDesc.frame.size.height)];
}
在此之前,将webview高度设为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;
}
在这里,您必须使用font-style修复宽度和字体大小。
可能对你有帮助。
答案 1 :(得分:0)
有几种方法可以找到UIWebView
内容的高度。
以下是一些指示:
How to determine UIWebView height based on content, within a variable height UITableView?
How to determine the content size of a UIWebView?
iPhone - get the Content Size of UIWebView
请注意,在UIWebView
中使用UITableView
并不是一个好主意,特别是如果您在同一个Announcements
中滚动了很多UITableView
。如果每UITableView
只显示一个公告,您应该可以使用它,但对于有大量单元格要滚动的表格,在单元格中使用网页浏览可能会导致性能问题。
Apple也建议不要使用嵌入UIWebViews
/ UITableViews
/ UIScrollViews
。
重要:您不应该嵌入UIWebView或UITableView对象 UIScrollView对象。如果这样做,可能会导致意外行为 因为两个对象的触摸事件可能混淆错误 处理。
我的2美分:)