我在同时动画cells
内容时遇到问题。一旦单元格不再可见(用户滚动表格),动画就会冻结。当细胞再次可见时,动画继续。
所有单元格都以单独的方法预先计算,并存储在NSMutableArray
中,因此cellForRowAtIndexPath
方法如下所示:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
return [_precomputedCells objectAtIndex:indexPath.row];
}
该方法,填充_precomputedCells
数组也会触发每个单元格中的所有动画。
任何想法我怎么能保证,无论细胞是否可见,都会播放所有动画?
答案 0 :(得分:1)
您遇到的问题是UITableView
从视图层次结构中删除了不可见的单元格。这就是动画停止的原因。
一个明显的解决方案是使用UIScrollView
代替UITableView
。它需要更多的工作,但没有太复杂。
另一个解决方案是删除当前的单元格动画,并在单元格出现时重新启动它们,使用一些UITableView
委托方法,例如tableView:willDisplayCell:forRowAtIndexPath:
。