渐变色:
typedef NS_ENUM(NSInteger, UIColorGradientDirection) {
///水平方向
UIColorGradientDirectionHorizontal =1,
///垂直方向
UIColorGradientDirectionVertical =2,
///对角线方向(左上-右下)
UIColorGradientDirectionlLeftUpToRightDown =0,
///对角线方向(左下-右上)
UIColorGradientDirectionlLeftDownToRightUp =3,
};
+ (UIColor*)gradientColorFromColors:(NSArray*)colors imgSize:(CGSize)imgSize gradientDirection:(UIColorGradientDirection)gradientDirection{
NSMutableArray *ar = [NSMutableArray array];
for(UIColor*c in colors) {
[ar addObject:(id)c.CGColor];
}
UIGraphicsBeginImageContextWithOptions(imgSize, YES, 1);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGContextClearRect(context,CGRectMake(0,0, imgSize.width, imgSize.height));
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGGradientRef gradient =CGGradientCreateWithColors(colorSpace, (CFArrayRef)ar,NULL);
CGPoint start;
CGPoint end;
switch(gradientDirection) {
case UIColorGradientDirectionHorizontal:
start =CGPointMake(0.0,0.0);
end =CGPointMake(imgSize.width,0);
break;
case UIColorGradientDirectionVertical:
start =CGPointMake(0.0,0.0);
end =CGPointMake(0, imgSize.height);
break;
case UIColorGradientDirectionlLeftUpToRightDown:
start =CGPointMake(0.0,0.0);
end =CGPointMake(imgSize.width, imgSize.height);
break;
case UIColorGradientDirectionlLeftDownToRightUp:
start =CGPointMake(0.0, imgSize.height);
end =CGPointMake(imgSize.width,0.0);
break;
default:
break;
}
CGContextDrawLinearGradient(context, gradient, start, end, kCGGradientDrawsBeforeStartLocation | kCGGradientDrawsAfterEndLocation);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
CGGradientRelease(gradient);
CGContextRestoreGState(context);
CGColorSpaceRelease(colorSpace);
UIGraphicsEndImageContext();
return [UIColor colorWithPatternImage:image];
}
获取RGBA
- (void)getRGB:(UIColor *)color{
CGFloat red =0.0;
CGFloat green =0.0;
CGFloat blue =0.0;
CGFloat alpha =0.0;
[color getRed:&red green:&green blue:&blue alpha:&alpha];
NSLog(@"red:%f,green:%f,blue:%f,alpha:%f",red,green,blue,alpha);
}
十六进制转颜色
+ (UIColor*)colorWithHex:(long)hex{
return [UIColorcolorWithRed:(((hex &0xFF0000) >>16))/255.0 green:(((hex &0xFF00) >>8))/255.0 blue:((hex &0xFF))/255.0alpha:1.0];
}
+ (UIColor*)colorWithHex:(long)hexalpha:(float)alpha{
return [UIColorcolorWithRed:(((hex &0xFF0000) >>16))/255.0 green:(((hex &0xFF00) >>8))/255.0 blue:((hex &0xFF))/255.0 alpha:alpha];
}
网友评论