iOS 环绕动画 CAReplicatorLayer

来源:互联网 发布:谈大数据的重要性 编辑:程序博客网 时间:2024/04/29 21:43

@implementation ViewController{    CAReplicatorLayer *_replicatorLayer;    UIView *_earthView;;    }- (void)viewWillAppear:(BOOL)animated{    [super viewWillAppear:animated];    UIBezierPath *bezierPath = [UIBezierPath bezierPath];    [bezierPath addArcWithCenter:CGPointMake(self.view.center.x, self.view.center.y) radius:150 startAngle:0 endAngle:M_PI * 2 clockwise:YES];    [bezierPath closePath];    CAKeyframeAnimation *animation = [CAKeyframeAnimation animation];    animation.keyPath = @"position";    animation.path = bezierPath.CGPath;    animation.duration = 10;    animation.repeatCount = MAXFLOAT;    _replicatorLayer.instanceCount = 1; // 创建实例个数    _replicatorLayer.instanceDelay = 0;    [self.view.layer addSublayer:_replicatorLayer];    [_earthView.layer addAnimation:animation forKey:nil];}- (void)viewDidLoad {    [super viewDidLoad];    self.view.backgroundColor = [UIColor grayColor];        _replicatorLayer = [[CAReplicatorLayer alloc] init];        _earthView  = [[UIView alloc] initWithFrame:CGRectMake(50, 100, 50, 50)];    _earthView.backgroundColor = [UIColor greenColor];    _earthView.layer.masksToBounds = YES;    _earthView.layer.cornerRadius = 25;    [self.view addSubview:_earthView];        UIView *sunView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];    sunView.layer.masksToBounds = YES;    sunView.layer.cornerRadius = 50;    sunView.backgroundColor = [UIColor redColor];    sunView.center = self.view.center;    [self.view addSubview:sunView];    [_replicatorLayer addSublayer:_earthView.layer];    [_replicatorLayer addSublayer:sunView.layer];    }

话不多说直接代码


原创粉丝点击