iOS渐变图层使用CAGradientLayer类进行实现
CAGradientLayer *gradientLayer = [[CAGradientLayer alloc] init];
gradientLayer.frame = CGRectMake(100, 100, 200, 400);
// 设置渐变的颜色组
gradientLayer.colors = @[(__bridge id)[UIColor redColor].CGColor,(__bridge id)[UIColor yellowColor].CGColor,(__bridge id)[UIColor blueColor].CGColor];
gradientLayer.startPoint = CGPointMake(1, 0);
gradientLayer.endPoint = CGPointMake(1, 1);
gradientLayer.locations = @[@(0),@(0.5),@(1)];
[self.view.layer addSublayer:gradientLayer];
包含设置渐变的颜色数组、渐变的起点终点(可以控制渐变方向)、渐变的位置
也可以给渐变图层增加遮罩,遮罩的路径可以自己实现路径绘制,以达到想要的效果,设置mask属性就是为遮罩,遮罩的路径需要进行闭合
// 添加遮罩
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
// UIBezierPath *maskPath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, 200, 400)];
UIBezierPath *maskPath = [UIBezierPath bezierPath];
[maskPath moveToPoint:CGPointMake(0, 0)];
[maskPath addLineToPoint:CGPointMake(200, 200)];
[maskPath addLineToPoint:CGPointMake(100, 400)];
[maskPath addLineToPoint:CGPointMake(0, 200)];
[maskPath addLineToPoint:CGPointMake(0, 0)];
maskLayer.path = maskPath.CGPath;
gradientLayer.mask = maskLayer;
网友评论