我单元格中的一些标签有动画外观(下面的代码)。
然而,一旦屏幕上有更多的单元格而不是空间,滚动之前插入的单元格将重新绘制,并再次触发它们的动画。
如何防止此行为?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"results"];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"results"];
}
...
// Animations
nameLabel.alpha = 0;
nameLabel.transform = CGAffineTransformMakeTranslation(-80, 0);
priceLabel.alpha = 0;
priceLabel.transform = CGAffineTransformMakeTranslation(+100, 0);
cell.imageView.alpha = 0;
cell.imageView.transform = CGAffineTransformMakeTranslation(-300, 0);
[UIView animateWithDuration:1 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{
nameLabel.alpha = 1;
nameLabel.transform = CGAffineTransformMakeTranslation(0, 0);
priceLabel.alpha = 0.6;
priceLabel.transform = CGAffineTransformMakeTranslation(0, 0);
cell.imageView.alpha = 1;
cell.imageView.transform = CGAffineTransformMakeTranslation(0, 0);
}completion:^(BOOL Finished){}];
return cell;
}
答案 0 :(得分:0)
也许您可以在单元格显示而不是collectionView:willDisplayCell:forItemAtIndexPath:
时调用cellForRowAtIndexPath:
中的单元格设置动画。