我使用两个表视图(主表和子表),一个表在其他单元格内。 我在主表的单元格内容视图中添加子表。 我也在为两个表格单元使用不同的Cell Identifier。
现在,问题是:
当- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
被称为, 生成主表的第一个单元格,当我向上/向下滚动时,它们都刚刚出列,因此它是预期的和标准行为并且工作正常。 但是,Sub Table的单元格每次都被创建/分配。它没有应该出现。 我猜,它的发生是因为Sub Table是Main Table的Cell Content视图的一部分。但不确定,也不知道如何解决它。 有人可以帮我找到解决方案吗?
答案 0 :(得分:1)
你的问题正如你所描述的那样:子表UITableView对象被完全解除分配,并且它的单元队列也随之被释放。您可以尝试在数组或其他内容中分别保留每个主表单元格的子表视图,但这很难看并且容易保持混乱。表视图不是为您使用它们的方式而设计的。在一个项目中我们面临相同的设计,我们最终将子表绘制为一般视图,在子表格单元格的循环中使用简单的子视图。
由您决定是否可以继续开始或将实现更改为其他方法,但如果您不需要在主表格单元格中滚动和重复使用,我建议您放弃子table完全是UITableView方法。
答案 1 :(得分:1)
我遇到了完全相同的问题。这是因为示例教程使用deque
,我只是将其更改为指针转到单元格而不是deque
。
cellForRowAtIndexPath:indexPath
为我工作。