@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];
}
话不多说直接代码