UITableView重用机制导致CABasicAnimation动画失效

1.添加动画的代码

- (void) rotateViewAnimated{
    CABasicAnimation *rotateYBasAni = [CABasicAnimation animationWithKeyPath:@"transform.rotation.y"];
    rotateYBasAni.duration = animationTime;
    rotateYBasAni.fromValue = @(0);
    rotateYBasAni.toValue = @(M_PI * 2.0);
    rotateYBasAni.repeatCount = HUGE_VALF;
    rotateYBasAni.removedOnCompletion = NO;
    rotateYBasAni.fillMode = kCAFillModeForwards;
    rotateYBasAni.delegate = self;
    rotateYBasAni.autoreverses = YES;
    // 1秒后执行
//    rotateYBasAni.beginTime = CACurrentMediaTime() + .25;
    [self.oneCS.layer addAnimation:rotateYBasAni forKey:@"rotation.y"];
    
}

解决办法:刷新的时候判断动画还有没有,没有的话重新加上动画 在setmodel里填写

-(void)setModel:(HLInviteModel *)model{
    _model = model;
   ///其他的赋值逻辑
    NSArray * array = self.oneCS.layer.animationKeys;
     if (![array containsObject:@"rotation.y"]) {
            [self rotateViewAnimated];
       }
}

你可能感兴趣的:(UITableView重用机制导致CABasicAnimation动画失效)