CABasicAnimation

 //闪烁
    [self.mainImageView.layer removeAnimationForKey:@"opacityForever"];
    CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@"opacity"];
    animation.fromValue=[NSNumber numberWithFloat:1.0];
    animation.toValue=[NSNumber numberWithFloat:0.0];
    animation.autoreverses=YES;
    animation.duration=0.6;
    animation.repeatCount=1;
    animation.removedOnCompletion=YES;
    animation.fillMode=kCAFillModeForwards;
    
    [self.mainImageView.layer addAnimation:animation forKey:@"opacityForever"];
    /* 放大缩小 */
    [self.mainImageView.layer removeAnimationForKey:@"scale-layer"];
    // 设定为缩放
    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
    
    // 动画选项设定
    animation.duration = 2.5; // 动画持续时间
    animation.repeatCount = 1; // 重复次数
    animation.autoreverses = YES; // 动画结束时执行逆动画
    
    // 缩放倍数
    animation.fromValue = [NSNumber numberWithFloat:1.0]; // 开始时的倍率
    animation.toValue = [NSNumber numberWithFloat:2.0]; // 结束时的倍率
    animation.removedOnCompletion = YES;
    // 添加动画
    [self.mainImageView.layer addAnimation:animation forKey:@"scale-layer"];
原文地址:https://www.cnblogs.com/KingQiangzi/p/6050013.html