0

我在附件中显示了一个自定义单元格:

在此处输入图像描述

我正在使用 UIWebView 来显示推文文本。有些推文很短,我想调整 web 视图的大小,向上移动 Time since,然后最后调整单元格的大小。我知道如何调整 web 视图的大小,但不知道如何计算如何移动时间和调整单元格的大小。

- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSFetchedResultsController *fetchedResultsController = nil;

    if (self.tweetsSegmentedControl.selectedSegmentIndex == REPORTERS_SELECTED_INDEX)
    {
        fetchedResultsController = self.reportersFetchedResultsController;

    }
    else if (self.tweetsSegmentedControl.selectedSegmentIndex == PLAYERS_SELECTED_INDEX)
    {
        fetchedResultsController = self.playersFetchedResultsController;
    }

    Tweet *tweet = [fetchedResultsController objectAtIndexPath:indexPath];

    //Calcaulate height of box, instead of return a fixed number 
    return 170;
}
4

1 回答 1

0

我知道如何调整网页视图的大小

不。使用 autosizing 以单元格的高度拉伸 UIWebView。

如何移动时间以来

不。使用 autosizing 将 Time since 固定到单元格的底部。

调整单元格大小

利用-tableView:heightForRowAtIndexPath:


更新

我之前这样做的方法是在原型单元格中为灵活视图(为您的 web 视图)设置一个已知大小,并为原型单元格设置一个已知大小。在这种情况下,我们会说 Web 视图是 kPrototypeViewHeight,原型是 kPrototypeCellHeight。

在表视图控制器中:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UIWebView *webView = … // Whatever you need to do to get the web view
    CGFloat webViewHeight = webView.frame.size.height;
    return kPrototypeCellHeight - kPrototypeViewHeight + webViewHeight;
}

注意:这将在-tableView:cellForRowAtIndexPath:调用之前完成。因此,在绘制自己之前,您需要知道自己的尺寸。

注意 2:因为您正在自己更改 webView 的大小,所以您不希望它自动调整大小。

注意 3:您将重新渲染表格中的每个 Web 视图以计算您的身高。我的猜测是滚动会很慢。

希望有帮助。

于 2012-07-16T17:02:37.193 回答