【问题标题】:Cell Dequeue problem when table inside another table's cell content view当表格在另一个表格的单元格内容视图中时出现单元格出列问题
【发布时间】:2011-01-25 07:47:54
【问题描述】:
我正在使用两个表视图(主表和子表),一个表位于另一个单元格中。
我在主表的单元格内容视图中添加子表。
我还在为两个表格单元格使用不同的单元格标识符。
现在,问题是:
当- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
被称为,
第一次生成主表的单元格,当我向上/向下滚动时,它们都刚刚出列,因此这是预期的标准行为并且工作正常。
但是,每次都会创建/分配子表的单元格。它没有按应有的方式出队。
我想,它的发生是因为子表是主表的单元格内容视图的一部分。但不确定也不知道如何解决。
有人可以帮我找到解决方案吗?
【问题讨论】:
标签:
iphone
cocoa-touch
iphone-sdk-3.0
uikit
【解决方案1】:
您的问题与您描述的完全一样:子表 UITableView 对象被完全释放,其单元队列也随之释放。您可以尝试将每个主表格单元格的子表格视图分别保留在一个数组或其他东西中,但这很丑陋并且容易留下混乱。表视图不是为您使用它们的方式而设计的。在我们面临相同设计的一个项目中,我们最终将子表绘制为一般视图,在子表单元格的 for 循环中使用简单的子视图。
由您决定是否可以继续您开始的方式或将实现更改为不同的方法,但如果您不需要在主表格单元格内滚动和单元格重用,我建议您放弃子table 完全是一个 UITableView 方法。
【解决方案2】:
我遇到了完全相同的问题。这是因为示例教程使用deque,我只是将其更改为指向单元格的指针而不是deque。
cellForRowAtIndexPath:indexPath
为我工作。