您可以使用带圆形蒙版的CAGradientLayer来实现此效果.示例代码(假设您在某个视图控制器中使用它):
- (void)viewDidLoad
{
[super viewDidLoad];
CAGradientLayer *glayer = [CAGradientLayer layer];
glayer.frame = CGRectMake(60.0f, 60.0f, 200.0f, 200.0f);
glayer.colors = @[(__bridge id)[UIColor greenColor].CGColor,
(__bridge id)[UIColor cyanColor].CGColor,
(__bridge id)[UIColor blueColor].CGColor,
(__bridge id)[UIColor purpleColor].CGColor,
(__bridge id)[UIColor redColor].CGColor,
(__bridge id)[UIColor orangeColor].CGColor,
(__bridge id)[UIColor yellowColor].CGColor];
glayer.backgroundColor = [UIColor redColor].CGColor;
CAShapeLayer *shLayer = [CAShapeLayer layer];
[shLayer setPath:CGPathCreateWithEllipseInRect(CGRectMake(0, 0, 200, 200), NULL)];
[glayer setMask:shLayer];
[self.view.layer addSublayer: glayer];
}
Run Code Online (Sandbox Code Playgroud)
需要注意的是colors和locationsCAGradientLayer的性质是动画,这样你就可以使用这种方法轻松地添加动画效果
| 归档时间: |
|
| 查看次数: |
640 次 |
| 最近记录: |