漸變色:
typedef NS_ENUM(NSInteger, UIColorGradientDirection) {
? ? ///水平方向
? ? UIColorGradientDirectionHorizontal =1,
? ? ///垂直方向
? ? UIColorGradientDirectionVertical =2,
? ? ///對(duì)角線方向(左上-右下)
? ? UIColorGradientDirectionlLeftUpToRightDown =0,
? ? ///對(duì)角線方向(左下-右上)
? ? 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);
}
十六進(jìn)制轉(zhuǎn)顏色
+ (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];
}