1.新建UIview Category UIView+GradientColors
2. h文件
typedef NS_ENUM(NSInteger, GradientPosition){
PositonHorizontal,//橫向
PositonVertical,//豎向
PositionUpLeft,//左上->右下
PositionUpRight,//右上->左下
};
/// 設(shè)置漸變顏色
/// @param colors 顏色數(shù)組 (__bridge id)UIColor.redColor.CGColor
/// @param position 漸變方向
-(void)setGradientColors:(NSArray *)colors andGradientPosition:(GradientPosition)position;
3. m文件
-(void)setGradientColors:(NSArray *)colors andGradientPosition:(GradientPosition)position
{
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.colors = colors;
switch (position) {
case PositonHorizontal:
gradientLayer.startPoint = CGPointMake(0, 0);
gradientLayer.endPoint = CGPointMake(1.0, 0);
break;
case PositonVertical:
gradientLayer.startPoint = CGPointMake(0, 0);
gradientLayer.endPoint = CGPointMake(0, 1.0);
break;
case PositionUpLeft:
gradientLayer.startPoint = CGPointMake(0, 0);
gradientLayer.endPoint = CGPointMake(1.0, 1.0);
break;
case PositionUpRight:
gradientLayer.startPoint = CGPointMake(1.0, 0);
gradientLayer.endPoint = CGPointMake(0, 1.0);
break;
default:
break;
}
gradientLayer.frame = self.bounds;
[self.layer addSublayer:gradientLayer];
}
4.使用
[testView setGradientColors:@[(__bridge id)UIColor.redColor.CGColor,(__bridge id)UIColor.greenColor.CGColor,] andGradientPosition:PositionUpRight];
效果
WX20210526-165955.png