美文网首页
CAGradientLayer实现多重渐变

CAGradientLayer实现多重渐变

作者: HAPPY小元宝 | 来源:发表于2016-08-10 00:23 被阅读55次

colors属性可以包含很多颜色,创建多重渐变也是很简单的。默认情况下,这些颜色在空间上均匀地被渲染,但是我们可以用locations属性来调整空间。locations属性是一个浮点数值的数组(以NSNumber包装)。这些浮点数定义了colors属性中每个不同颜色的位置,同样的也是以单位坐标系进行标定。0.0代表着渐变的开始,1.0代表着结束。

locations数组并不是强制要求的,但是如果你给它赋值了就一定要确保locations的数组大小和colors数组大小一定要相同,否则你将会得到一个空白的渐变。以下是示例:

- (void)viewDidLoad {
    [super viewDidLoad];
    
    UIView *colorView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
    [self.view addSubview:colorView];
    
    CAGradientLayer *gradientLayer = [CAGradientLayer layer];
    gradientLayer.frame = colorView.bounds;
    [colorView.layer addSublayer:gradientLayer];
    
    // set gradient colors
    gradientLayer.colors = @[(__bridge id)[UIColor redColor].CGColor, (__bridge  id)[UIColor yellowColor].CGColor, (__bridge id)[UIColor greenColor].CGColor];
    // set locations
    gradientLayer.locations = @[@0.0, @0.5, @1.0];
    
    // set gradient start and end points
    gradientLayer.startPoint = CGPointMake(0, 0);
    gradientLayer.endPoint = CGPointMake(1.0, 1.0);

}
屏幕快照 2016-08-10 上午12.17.38.png

原文出处: 钟声. “ios核心动画高级技巧”。

相关文章

网友评论

      本文标题:CAGradientLayer实现多重渐变

      本文链接:https://www.haomeiwen.com/subject/hcgdsttx.html