Objective-C在UITableViewCell内重新加载UITableView

时间:2013-11-12 11:04:37

标签: objective-c uitableview

我有可下载项目的UITableView,我使用另一个UITableView下载项目信息。如何重新加载所有UITableViewCell的UiTableView?

我尝试使用[downloadList reloadData];,但它只刷新了大表。

编辑: 我正在尝试这样做:jsfiddle.net/WrNFU。我希望细节正确对齐但问题是标题可能太长而且我不确定标题将使用多少行。因为heightForRowAtIndexPath函数,我使用了第二个表,这使我能够调整标题行的高度。

答案:

使用我在此处找到的代码:iPad: Iterate over every cell in a UITableView?

    for (int section = 0; section < [downloadList numberOfSections]; section++) {
        for (int row = 0; row < [downloadList numberOfRowsInSection:section]; row++) {
            NSIndexPath* cellPath = [NSIndexPath indexPathForRow:row inSection:section];
            UITableViewCell* cell = [downloadList cellForRowAtIndexPath:cellPath];

            UITableView *tempTableView = (UITableView *)[cell viewWithTag:110];
            [tempTableView reloadData];
        }
    }

1 个答案:

答案 0 :(得分:1)

使用单个UITableView(不需要使用嵌套的表视图),您可以将每个项目(书籍?)视为单个UITableViewCell,并处理内容的不同大小。

Yu需要计算UITableViewCell的高度并设置

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;

以便tableview知道内容的大小。您当然还要根据文本调整标签大小。

还有

- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation NS_AVAILABLE_IOS(3_0);

可用于在下载完成后重新加载单个单元格。

目前还不清楚为什么要重新加载单个单元格,是否在显示视图时启动的每个项目的下载?您只下载显示的文本或完整文件?我觉得可以更轻松地处理它。