Objective-C 在 UITableViewCell 中重新加载 UITableView

Posted

技术标签:

【中文标题】Objective-C 在 UITableViewCell 中重新加载 UITableView【英文标题】:Objective-C Reload a UITableView inside a UITableViewCell 【发布时间】:2013-11-12 11:04:37 【问题描述】:

我有一个可下载项目的 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];
        
    

【问题讨论】:

为什么你不使用一个表格视图自定义单元格?包含 4 个标签、2 个静态文本和 2 个是动态的。其中将标题标签 no.of.lines 设为 3 并处理表格的高度。 【参考方案1】:

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

需要计算UITableViewCell的高度并设置

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

让tableview知道内容的大小。当然,您还必须调整标签的大小以适合文本。

还有

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

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

仍然不清楚为什么要重新加载单个单元格,是否在显示视图时开始下载每个项目?您是只下载显示的文本还是完整的文件?我觉得它可以以更简单的方式处理。

【讨论】:

如何访问内部表格视图?使用标签?因为我不能在内表视图上使用 IBOutlet。 标签可能是个好主意。但是你确定你需要有内部表格视图吗?你不能使用部分吗? 我正在尝试在我的内部表格视图中显示类似的内容:标题:XXXXXXXX XXXXXXXX 作者:XXXXX 一个简单的 UITableViewCell 还不够吗? 问题是标题可能很短也可能很长。我不知道它需要多少行才能完全显示。

以上是关于Objective-C 在 UITableViewCell 中重新加载 UITableView的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Objective-C 的 UITableView 中使 UITableViewRowAction 完全透明

如何在objective-C中制作平滑的UITableView [关闭]

Objective-C UI之UITableView详解

如何使用 UIImages 创建 UITableView? - 可可/Objective-C

如何在 Objective-C 中的 UITableview 的 Row 和 Section 上添加一个 UIButton

在 UITableView Objective-C 中实现 UISearchController