美文网首页
ios 渐变层

ios 渐变层

作者: 旅途开发者 | 来源:发表于2016-12-12 16:41 被阅读166次

CAGradientLayer 简介

CAGradientLayer是CALayer图层类的子类,用于处理渐变色的层结构。

CAGradientLayer的渐变色可以做隐式动画。

CAGradientLayer和CAShapeLayer配合使用可实现复杂效果。

CAGradientLayer可以用作PNG的遮罩效果。

CAGradientLayer 属性介绍

colors:渐变颜色数组

locations:渐变颜色的区间分布(分割点),locations的数组长度和colors一致。这个属性可不设,默认是nil,系统会平均分布颜色如果有特定需要可设置,数组设置为0 ~ 1之间单调递增。

startPoint:映射locations中起始位置,用单位向量表示。比如(0, 0)表示从左上角开始变化。默认值是:(0.5, 0.0)。

endPoint:映射locations中结束位置,用单位向量表示。比如(1, 1)表示到右下角变化结束。默认值是:(0.5, 1.0)。

type:默认值是kCAGradientLayerAxial,表示按像素均匀变化。

CAGradientLayer 坐标系统

CAGradientLayer的坐标系统是从坐标(0,0)到(1,1)绘制的矩形。

CAGradientLayer的frame值的size不为正方形的话,坐标系统会被拉伸。

CAGradientLayer的startPoint与endPoint会直接影响颜色的绘制方向。

CAGradientLayer的颜色分割点是以0~1的比例来计算的,颜色分割点为渐变色开始或终止的地方。

实例代码:

@interface ViewController (){

}

@property (weak, nonatomic) IBOutlet UIView *baseView;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

_baseView.backgroundColor = [UIColor grayColor];

//设置渐变层

CAGradientLayer * gradientLayer = [CAGradientLayer layer];

gradientLayer.frame = CGRectMake(0, 0, _baseView.frame.size.width, _baseView.frame.size.height);

[_baseView.layer addSublayer:gradientLayer];

//设置渐变色

gradientLayer.colors = @[(__bridge id)[UIColor redColor].CGColor,(__bridge id)[UIColor greenColor].CGColor];

//设置颜色分割点

gradientLayer.locations = @[@(0.2),@(0.9)];

//设置起始点和结束点

gradientLayer.startPoint = CGPointMake(0, 0);

gradientLayer.endPoint = CGPointMake(1, 1);

}

相关文章

网友评论

      本文标题:ios 渐变层

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