0

我有一个名为 的类Announcement,它有一个Title( NSString)、一个Publishing Date( NSString) 和一个Body(NSString带有 HTML 内容)。

我想以与电子邮件应用程序类似的方式显示它。当您阅读电子邮件时,您会看到前三个“行”(发件人、收件人、标题[日期]),然后是电子邮件的内容。

我只想创建“标题[日期]”行,然后是正文。我想它是一个UITableView在第一个单元格上具有 myTitle和在第二个单元格上的 a UIWebView

但似乎单元格的高度正好是UIWebView,所以我的问题是:

如何UIWebView根据 my计算 my 的高度Body?因为基本上当你垂直滚动时,你滚动整个UITableView,当你水平滚动时,你只滚动UIWebView内容。

谢谢

4

2 回答 2

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;
}

在这里,您必须使用字体样式固定宽度和字体大小。

可能对你有帮助。

于 2012-05-23T08:01:50.247 回答
0

有几种方法可以找到 aUIWebView内容的高度。

以下是一些开始的指针:

如何在可变高度 UITableView 内根据内容确定 UIWebView 高度?

如何确定 UIWebView 的内容大小?

iPhone - 获取 UIWebView 的内容大小

请注意,UIWebView在 a中使用 aUITableView不一定是一个好主意,特别是如果您Announcements在同一个UITableView. 如果您只显示一个 Announcement per UITableView,您应该能够摆脱它,但对于有很多单元格要滚动的表格,在单元格中使用 webviews 可能会导致性能问题。

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

UIWebView 类参考

重要提示:您不应该在 UIScrollView 对象中嵌入 UIWebView 或 UITableView 对象。如果这样做,可能会导致意外行为,因为两个对象的触摸事件可能会混淆并错误处理。

我的 2 美分 :)

于 2012-05-23T08:00:13.913 回答