我在Cell中编写了一些CAAnimation代码。在单元的第一次显示中它工作正常。但在单元重用之后。动画停止了。几乎一路上网。它删除动画并再次添加。但我希望我能获得动画并重新开始。有人知道怎么做吗?感谢您的帮助。
我还发现苹果提供了一种停止和恢复CAAnimation的方法。但是似乎在我的项目中仅使用简历代码是行不通的。 这是线。 QA1673
我使用CAAnimationDelegate观看动画状态。当单元格滚动到边界之外时,它们调用- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
来告知动画已停止。这样苹果就不会偶然阻止它。
这就是我得到的全部信息。
答案 0 :(得分:0)
您已经发现,单元格的awakeFromNib
对于一个单元格仅被调用一次,即使它可能会被多次重用。我建议将您的代码如下:
在UITableViewCell
或子类中
- (void)awakeFromNib
在单元的生命周期中调用一次。
放置与单元格内容无关的初始化代码。
- (void)prepareForReuse
在单元将要回收时调用。
在此处重新使用单元之前,请放置必须调用的清理代码。通常,您不需要使用它,而是可以将代码放在cellForRowAtIndexPath
中。见下文。
在实现UITableViewDataSource
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
调用表视图要显示的每个单元格。
在此放置与单元格内容相关的初始化代码。我建议您将动画代码放在这里。