ios oc 雷达扫描动画

- (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];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容