单元重用后如何恢复CAAnimation组?

时间:2019-01-09 10:48:43

标签: ios objective-c caanimation

我在Cell中编写了一些CAAnimation代码。在单元的第一次显示中它工作正常。但在单元重用之后。动画停止了。几乎一路上网。它删除动画并再次添加。但我希望我能获得动画并重新开始。有人知道怎么做吗?感谢您的帮助。

我还发现苹果提供了一种停止和恢复CAAnimation的方法。但是似乎在我的项目中仅使用简历代码是行不通的。 这是线。 QA1673

我使用CAAnimationDelegate观看动画状态。当单元格滚动到边界之外时,它们调用- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag来告知动画已停止。这样苹果就不会偶然阻止它。

这就是我得到的全部信息。

1 个答案:

答案 0 :(得分:0)

您已经发现,单元格的awakeFromNib对于一个单元格仅被调用一次,即使它可能会被多次重用。我建议将您的代码如下:

UITableViewCell或子类中

- (void)awakeFromNib
在单元的生命周期中调用一次。 放置与单元格内容无关的初始化代码。

- (void)prepareForReuse
在单元将要回收时调用。 在此处重新使用单元之前,请放置必须调用的清理代码。通常,您不需要使用它,而是可以将代码放在cellForRowAtIndexPath中。见下文。

在实现UITableViewDataSource

的类中

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
调用表视图要显示的每个单元格。 在此放置与单元格内容相关的初始化代码。我建议您将动画代码放在这里。