iPhone UITableView - 同时为所有单元格内容添加动画效果

时间:2013-06-03 11:03:37

标签: iphone objective-c animation cell uitableview

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

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

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

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

任何想法我怎么能保证,无论细胞是否可见,都会播放所有动画?

1 个答案:

答案 0 :(得分:1)

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

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

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