根据内容iOS动态调整单元格大小

时间:2012-07-16 16:50:14

标签: ios uitableview

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

enter image description here

我正在使用UIWebView来显示推文文本。有些推文很短,我想调整网页视图的大小,向上移动时间,然后最终调整单元格的大小。我知道如何调整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;
}

1 个答案:

答案 0 :(得分:0)

  

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

别。使用自动调整大小来拉伸UIWebView与单元格的高度。

  

如何移动时间

别。使用自动调整功能将时间固定到单元格的底部。

  

调整单元格大小

使用-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:您将在表格中查看每个网页视图以计算您的身高。我的猜测是滚动会很慢。

希望有所帮助。