ios-uivew颜色渐变

代码:

    //背景颜色渐变
    CAGradientLayer *layer = [CAGradientLayer layer];
    layer.startPoint = CGPointMake(0.5, 0); //(0,0)表示从左上角开始变化。(0.5,0.0)表示从x轴为中间,y为顶端的开始变化
    layer.endPoint = CGPointMake(0.5, 1);   //(1,1)表示到右下角变化结束。(0.5,1.0)表示从x轴为中间,y为低端的结束变化
    layer.colors = @[(__bridge id)[UIColor colorWithHexString:@"#f8f8f8"].CGColor,
                                  (__bridge id)[UIColor colorWithHexString:@"#dddddd"].CGColor];//设置颜色数组
    layer.locations = @[@(0.0f), @(1.0f)];//设置颜色分割点(范围:0-1)
    //颜色也可为多个数组形式
    //layer.colors = [NSArray arrayWithObjects:(id)[UIColor blueColor].CGColor,(id)[UIColor redColor].CGColor,(id)[UIColor greenColor].CGColor, nil];//设置颜色数组
    //layer.locations = @[@0.0f,@0.6f,@1.0f];//渐变颜色的区间分布
    layer.frame =  CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width,[UIScreen mainScreen].bounds.size.height);
    [self.view.layer insertSublayer:layer atIndex:0];

解释:
CAGradientLayer坐标
左上角坐标为(0, 0),右下角坐标为(1, 1),中心点是(0.5, 0.5)。

ios-uivew颜色渐变_第1张图片
坐标系.png

CAGradientLayer属性

@interface CAGradientLayer : CALayer

@property(nullable, copy) NSArray *colors;
//颜色渐变的数组

@property(nullable, copy) NSArray *locations;
//渐变颜色的区间分布,locations的数组长度和color一致,默认是nil,会平均分布

@property CGPoint startPoint;
//映射locations中第一个位置,用单位向量表示,比如(0,0)表示从左上角开始变化。默认值是(0.5,0.0)

@property CGPoint endPoint;
//映射locations中最后一个位置,用单位向量表示,比如(1,1)表示到右下角变化结束。默认值是(0.5,1.0)

@property(copy) NSString *type;
//默认值是kCAGradientLayerAxial,表示按像素均匀变化。除了默认值也无其它选项

@end

你可能感兴趣的:(ios-uivew颜色渐变)