- (void)anim {
CABasicAnimation *op = [CABasicAnimation animationWithKeyPath: @"opacity"];
op.fromValue = [NSNumber numberWithFloat: 0.8];
op.toValue= [NSNumbernumberWithFloat:0.0];
op.duration=2.0f;
op.removedOnCompletion = YES;
CABasicAnimation *tr = [CABasicAnimation animationWithKeyPath: @"transform.scale"];
tr.fromValue = [NSNumber numberWithDouble: 0];
tr.toValue = [NSNumber numberWithDouble: 1];
tr.duration=2.0;
tr.removedOnCompletion = YES;
CAAnimationGroup *group = [[CAAnimationGroup alloc] init];
group.duration=2;
group.removedOnCompletion = NO;
group.fillMode = kCAFillModeForwards;
group.animations=@[op, tr];
CALayer*lay = [[CALayeralloc]init];
lay.cornerRadius = self.bounds.size.width / 2;
lay.borderWidth=0.8;
lay.borderColor=RGBCOLOR(195,195,195).CGColor;
lay.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.width);
lay.backgroundColor = RGBACOLOR(240, 240, 240, 0.8).CGColor;
[lay addAnimation: groupforKey:nil];
[self.layeraddSublayer: lay];
[self performSelector: @selector(removeanim:) withObject: lay afterDelay: 2];
}
- (void)removeanim: (CALayer*)lay {
[lay removeFromSuperlayer];
}
调用方法
@property (nonatomic, strong) CADisplayLink *dis;
self.dis = [CADisplayLink displayLinkWithTarget: self selector: @selector(anim)];
self.dis.preferredFramesPerSecond = 3;
[self.dis addToRunLoop: NSRunLoop.currentRunLoop forMode: NSDefaultRunLoopMode];
移除定时器
[self.dis invalidate];