0

我在同时制作动画cells内容时遇到问题。一旦单元格不再可见(用户滚动表格),动画就会冻结。当单元格再次可见时,动画将继续。

所有单元格都在单独的方法中预先计算,并存储在 中NSMutableArray,因此cellForRowAtIndexPath方法如下所示:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return [_precomputedCells objectAtIndex:indexPath.row];
}

填充_precomputedCells数组的方法也会触发每个单元格中的所有动画。

知道如何保证,无论单元格是否可见,所有动画都在播放?

4

1 回答 1

1

您遇到的问题是UITableView从视图层次结构中删除了不可见的单元格。这就是动画停止的原因。

一个明显的解决方案是使用UIScrollView而不是UITableView. 它需要更多的工作,但没有什么太复杂的。

另一种解决方案是删除当前单元格动画并在单元格出现时重新启动它们,使用一些UITableView委托方法,例如tableView:willDisplayCell:forRowAtIndexPath:.

于 2013-06-03T11:19:18.297 回答