十六进制颜色


#import <UIKit/UIKit.h>NS_ASSUME_NONNULL_BEGIN@interface UIColor (HexColor)
+ (UIColor *)wh_colorWithHexString:(NSString *)color alpha:(CGFloat)alpha;
@endNS_ASSUME_NONNULL_END#import "UIColor+HexColor.h"@implementation UIColor (HexColor)
+ (UIColor *)wh_colorWithHexString:(NSString *)color alpha:(CGFloat)alpha
{NSString *cString = [[color stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];if ([cString length] < 6){return [UIColor clearColor];}if ([cString hasPrefix:@"0X"]){cString = [cString substringFromIndex:2];}if ([cString hasPrefix:@"#"]){cString = [cString substringFromIndex:1];}if ([cString length] != 6){return [UIColor clearColor];}NSRange range;range.location = 0;range.length = 2;//rNSString *rString = [cString substringWithRange:range];//grange.location = 2;NSString *gString = [cString substringWithRange:range];//brange.location = 4;NSString *bString = [cString substringWithRange:range];unsigned int r, g, b;[[NSScanner scannerWithString:rString] scanHexInt:&r];[[NSScanner scannerWithString:gString] scanHexInt:&g];[[NSScanner scannerWithString:bString] scanHexInt:&b];return [UIColor colorWithRed:((float)r / 255.0f) green:((float)g / 255.0f) blue:((float)b / 255.0f) alpha:alpha];
}
@end
//显示16进制颜色+ (UIColor *)colorWithHexString:(NSString *)color alpha:(CGFloat)alpha{//删除字符串中的空格NSString *cString = [[color stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];// String should be 6 or 8 charactersif ([cString length] < 6){return [UIColor clearColor];}// strip 0X if it appears//如果是0x开头的,那么截取字符串,字符串从索引为2的位置开始,一直到末尾if ([cString hasPrefix:@"0X"]){cString = [cString substringFromIndex:2];}//如果是#开头的,那么截取字符串,字符串从索引为1的位置开始,一直到末尾if ([cString hasPrefix:@"#"]){cString = [cString substringFromIndex:1];}if ([cString length] != 6){return [UIColor clearColor];}// Separate into r, g, b substringsNSRange range;range.location = 0;range.length = 2;//rNSString *rString = [cString substringWithRange:range];//grange.location = 2;NSString *gString = [cString substringWithRange:range];//brange.location = 4;NSString *bString = [cString substringWithRange:range];// Scan valuesunsigned int r, g, b;[[NSScanner scannerWithString:rString] scanHexInt:&r];[[NSScanner scannerWithString:gString] scanHexInt:&g];[[NSScanner scannerWithString:bString] scanHexInt:&b];return [UIColor colorWithRed:((float)r / 255.0f) green:((float)g / 255.0f) blue:((float)b / 255.0f) alpha:alpha];}//默认alpha值为1+ (UIColor *)colorWithHexString:(NSString *)color{return [self colorWithHexString:color alpha:1.0f];}=

==============显示渐变色==========

//16进制颜色、rgb颜色、渐变色#import <UIKit/UIKit.h>@interface UIColor (HEX)
+ (UIColor *)colorWithHex:(UInt32)hex;
+ (UIColor *)colorWithHex:(UInt32)hex andAlpha:(CGFloat)alpha;
+ (UIColor *)colorWithHexString:(NSString *)hexString;
- (NSString *)HEXString;+ (UIColor *)colorWithWholeRed:(CGFloat)redgreen:(CGFloat)greenblue:(CGFloat)bluealpha:(CGFloat)alpha;+ (UIColor *)colorWithWholeRed:(CGFloat)redgreen:(CGFloat)greenblue:(CGFloat)blue;
/**渐变色*/
+ (UIColor*)gradientFromColor:(UIColor*)c1 toColor:(UIColor*)c2 withHeight:(int)height;
+ (UIColor*)gradientFromColor:(UIColor*)c1 toColor:(UIColor*)c2 withWidth:(int)Width;
+ (UIColor*)gradientFromColor:(UIColor*)c1 toColor:(UIColor*)c2 withPoint:(CGPoint)point;
@end#import "UIColor+HEX.h"
CGFloat colorComponentFrom(NSString *string, NSUInteger start, NSUInteger length) {NSString *substring = [string substringWithRange:NSMakeRange(start, length)];NSString *fullHex = length == 2 ? substring : [NSString stringWithFormat: @"%@%@", substring, substring];unsigned hexComponent;[[NSScanner scannerWithString: fullHex] scanHexInt: &hexComponent];return hexComponent / 255.0;
}@implementation UIColor (HEX)
+ (UIColor *)colorWithHex:(UInt32)hex{return [UIColor colorWithHex:hex andAlpha:1];
}
+ (UIColor *)colorWithHex:(UInt32)hex andAlpha:(CGFloat)alpha{return [UIColor colorWithRed:((hex >> 16) & 0xFF)/255.0green:((hex >> 8) & 0xFF)/255.0blue:(hex & 0xFF)/255.0alpha:alpha];
}+ (UIColor *)colorWithHexString:(NSString *)hexString {CGFloat alpha, red, blue, green;NSString *colorString = [[hexString stringByReplacingOccurrencesOfString:@"#" withString:@""] uppercaseString];switch ([colorString length]) {case 3: // #RGBalpha = 1.0f;red   = colorComponentFrom(colorString, 0, 1);green = colorComponentFrom(colorString, 1, 1);blue  = colorComponentFrom(colorString, 2, 1);break;case 4: // #ARGBalpha = colorComponentFrom(colorString, 0, 1);red   = colorComponentFrom(colorString, 1, 1);green = colorComponentFrom(colorString, 2, 1);blue  = colorComponentFrom(colorString, 3, 1);break;case 6: // #RRGGBBalpha = 1.0f;red   = colorComponentFrom(colorString, 0, 2);green = colorComponentFrom(colorString, 2, 2);blue  = colorComponentFrom(colorString, 4, 2);break;case 8: // #AARRGGBBalpha = colorComponentFrom(colorString, 0, 2);red   = colorComponentFrom(colorString, 2, 2);green = colorComponentFrom(colorString, 4, 2);blue  = colorComponentFrom(colorString, 6, 2);break;default:return nil;}return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
}- (NSString *)HEXString{UIColor* color = self;if (CGColorGetNumberOfComponents(color.CGColor) < 4) {const CGFloat *components = CGColorGetComponents(color.CGColor);color = [UIColor colorWithRed:components[0]green:components[0]blue:components[0]alpha:components[1]];}if (CGColorSpaceGetModel(CGColorGetColorSpace(color.CGColor)) != kCGColorSpaceModelRGB) {return [NSString stringWithFormat:@"#FFFFFF"];}return [NSString stringWithFormat:@"#%02X%02X%02X", (int)((CGColorGetComponents(color.CGColor))[0]*255.0),(int)((CGColorGetComponents(color.CGColor))[1]*255.0),(int)((CGColorGetComponents(color.CGColor))[2]*255.0)];
}+ (UIColor *)colorWithWholeRed:(CGFloat)redgreen:(CGFloat)greenblue:(CGFloat)bluealpha:(CGFloat)alpha
{return [UIColor colorWithRed:red/255.fgreen:green/255.fblue:blue/255.falpha:alpha];
}+ (UIColor *)colorWithWholeRed:(CGFloat)redgreen:(CGFloat)greenblue:(CGFloat)blue
{return [self colorWithWholeRed:redgreen:greenblue:bluealpha:1.0];
}/***  @brief  渐变颜色**  @param c1     开始颜色*  @param c2     结束颜色*  @param height 渐变高度**  @return 渐变颜色*/
+ (UIColor*)gradientFromColor:(UIColor*)c1 toColor:(UIColor*)c2 withHeight:(int)height
{CGSize size = CGSizeMake(1, height);UIGraphicsBeginImageContextWithOptions(size, NO, 0);CGContextRef context = UIGraphicsGetCurrentContext();CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();NSArray* colors = [NSArray arrayWithObjects:(id)c1.CGColor, (id)c2.CGColor, nil];CGGradientRef gradient = CGGradientCreateWithColors(colorspace, (__bridge CFArrayRef)colors, NULL);CGContextDrawLinearGradient(context, gradient, CGPointMake(0, 0), CGPointMake(0, size.height), 0);UIImage *image = UIGraphicsGetImageFromCurrentImageContext();CGGradientRelease(gradient);CGColorSpaceRelease(colorspace);UIGraphicsEndImageContext();return [UIColor colorWithPatternImage:image];
}
+ (UIColor*)gradientFromColor:(UIColor*)c1 toColor:(UIColor*)c2 withWidth:(int)Width
{CGSize size = CGSizeMake(Width, 1);UIGraphicsBeginImageContextWithOptions(size, NO, 0);CGContextRef context = UIGraphicsGetCurrentContext();CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();NSArray* colors = [NSArray arrayWithObjects:(id)c1.CGColor, (id)c2.CGColor, nil];CGGradientRef gradient = CGGradientCreateWithColors(colorspace, (__bridge CFArrayRef)colors, NULL);CGContextDrawLinearGradient(context, gradient, CGPointMake(0, 0), CGPointMake(size.width, 0), 0);UIImage *image = UIGraphicsGetImageFromCurrentImageContext();CGGradientRelease(gradient);CGColorSpaceRelease(colorspace);UIGraphicsEndImageContext();return [UIColor colorWithPatternImage:image];
}
+ (UIColor*)gradientFromColor:(UIColor*)c1 toColor:(UIColor*)c2 withPoint:(CGPoint )point
{CGSize size = CGSizeMake(point.x, point.y);UIGraphicsBeginImageContextWithOptions(size, NO, 0);CGContextRef context = UIGraphicsGetCurrentContext();CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();NSArray* colors = [NSArray arrayWithObjects:(id)c1.CGColor, (id)c2.CGColor, nil];CGGradientRef gradient = CGGradientCreateWithColors(colorspace, (__bridge CFArrayRef)colors, NULL);CGContextDrawLinearGradient(context, gradient, CGPointMake(0, 0), CGPointMake(size.width, size.height), 0);UIImage *image = UIGraphicsGetImageFromCurrentImageContext();CGGradientRelease(gradient);CGColorSpaceRelease(colorspace);UIGraphicsEndImageContext();return [UIColor colorWithPatternImage:image];
}
@end

iOS之颜色的调用、显示16进制颜色、渐变色相关推荐

  1. 16进制颜色识别和搭配规律

    在CSS中,经常会用到16进制的颜色来设置文本.背景.边框等颜色,但是对于一个纯前端来讲,16进制颜色的识别和搭配可能会较为陌生了 ,本文简单介绍一下16进制颜色的一些规律 16进制颜色的数值意义: ...

  2. 16进制颜色识别和搭配规律 (实用)

    原文出处:https://blog.csdn.net/weixin_39037804/article/details/100266599 在CSS中,经常会用到16进制的颜色来设置文本.背景.边框等颜 ...

  3. iOS 直接使用16进制颜色

    在做iOS开发时,一般我们会吸色,就是产品给的图我们一般会吸色,但是最近吸色时候,老大说有较大的颜色偏差,所以要求我们直接使用UI给出的额16进制颜色,你也可以搜索<RGB颜色值转换成十六进制颜 ...

  4. iOS 将16进制颜色转换成UIColor

    很多地方我们都使用16进制颜色,但iPhone使用的是UIColor对象,不直接支持16进制颜色,为此,需要我们手动将16进制颜色转换为UIColor - (UIColor *) hexStringT ...

  5. ios扩展16进制颜色

    iOS开发一般都是用到RGB颜色,美工给我们作图的时候往往给我们的色值都是十六进制的颜色如 #ff0000,如果先把16进制转换为RGB 的10 进制那将是非常麻烦的事,我们可以为 UIColor 添 ...

  6. iOS学习—UIColor使用16进制颜色

    1.实现思路 先把16进制转换为RGB然后再书写,为了提高开发速度,本文使用UIColor的分类,直接使用16进制颜色,例:self.view.backgroundColor = [UIColor h ...

  7. POI 自定义16进制颜色导出

    今天导入一个Excel 要求什么格式导入就怎么显示,包括字体 颜色,还要怎么导出.这个poi导入的是16进制颜色,导出比较麻烦.具体参考以下代码吧 private CellStyle createSt ...

  8. js自定义随机16进制颜色

    js自定义随机16进制颜色 function colorfn() {let str = Math.random().toString().slice(2, 8);if (str.length < ...

  9. 解决python 保存json到文件时 中文显示16进制编码的问题

    解决python 保存json到文件时 中文显示16进制编码的问题 参考文章: (1)解决python 保存json到文件时 中文显示16进制编码的问题 (2)https://www.cnblogs. ...

最新文章

  1. Linux下SSH 客户端不用输入密码配置步骤
  2. JavaScript - JavaScript自定义弹出对话框
  3. boost::proto::noinvoke相关的测试程序
  4. 轻量级ORM框架Dapper应用四:使用Dapper返回多个结果集
  5. Java int 转大端序、小端序
  6. http 请求报文和响应报文
  7. mysql慢查询工具
  8. css宋体代码_html布局中统一设置文字字体样式
  9. 有两个程序员得了肺癌 都是30多岁的男人
  10. 【算法】数组与矩阵问题——找到无序数组中最小的k个数
  11. 无法访问windows安装服务_win7系统提示无法访问windows安装服务如何解决【解决方法】...
  12. 远程访问型木马——灰鸽子软件的使用(含免杀)
  13. 电脑从windows变成linux,从Windows换到Linux下来
  14. Java解析接口返回的xml数据
  15. 2、面向对象的思维(与结构化思维比较)
  16. 【java学习笔记day01】运行第一个程序Helloworld!
  17. VM虚拟机局域网组网配置
  18. 【转】最容易理解的对卷积(convolution)的解释
  19. mysql最细粒度的权限是什么_粗粒度与细粒度权限控制
  20. 用Java实现定义一个大写字母,把它转换为小写字母后显示出来

热门文章

  1. 淘宝/Tmall商品详情页视频数据接口(视频数据,销量数据,sku属性数据,页面上有的数据均可以拿到,支持高并发)
  2. 【go项目-geecache】动手写分布式缓存 - day7 - 使用 Protobuf 通信
  3. 提前预测精准选股指标 判断趋势的最佳指标 通达信好用的钻石趋势指标副图
  4. 微信小程序日历包含(阴历)- - -附效果图
  5. 【PC工具】可能是最好用最方便的内部网络设备查看工具,内网ip查询ip扫描工具...
  6. 如何在Java面试中克服恐惧?
  7. 如何制作一个自定义的winpe?
  8. 多页面分页打印功能实现
  9. 通信网络相关名词解释(欢迎各位指正错误或补充)
  10. Arduino+A4988+步进电机