在做iOS开发时,一般我们会吸色,就是产品给的图我们一般会吸色,但是最近吸色时候,老大说有较大的颜色偏差,所以要求我们直接使用UI给出的额16进制颜色,你也可以搜索《RGB颜色值转换成十六进制颜色码:》先把16进制颜色转换为RGB的然后再写,但是这样有点影响开发速度,所以呢就写了一个UIColor的分类,直接使用16进制的颜色。

UIColor的分类DLColorChange .h文件
#import <UIKit/UIKit.h>

@interface UIColor (DLColorChange)

// 颜色转换:iOS中(以#开头)十六进制的颜色转换为UIColor(RGB)
+ (UIColor *) colorWithHexString: (NSString *)color; @end
UIColor的分类DLColorChange .m文件
#import "UIColor+DLColorChange.h"

@implementation UIColor (DLColorChange)

+ (UIColor *) colorWithHexString: (NSString *)color
{
NSString *cString = [[color stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString]; // String should be 6 or 8 characters
if ([cString length] < ) {
return [UIColor clearColor];
}
// 判断前缀
if ([cString hasPrefix:@"0X"])
cString = [cString substringFromIndex:];
if ([cString hasPrefix:@"#"])
cString = [cString substringFromIndex:];
if ([cString length] != )
return [UIColor clearColor];
// 从六位数值中找到RGB对应的位数并转换
NSRange range;
range.location = ;
range.length = ;
//R、G、B
NSString *rString = [cString substringWithRange:range];
range.location = ;
NSString *gString = [cString substringWithRange:range];
range.location = ;
NSString *bString = [cString substringWithRange:range];
// Scan values
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:1.0f];
} @end

我们可以把

  #import "UIColor+DLColorChange.h"

 写在pch文件中,这样我们全局就可以用。调用如下

 self.view.backgroundColor=[UIColor colorWithHexString:@"#edae48"];

 

iOS 直接使用16进制颜色的更多相关文章

  1. iOS开发中16进制颜色(html颜色值)字符串转为UIColor

    //16进制颜色(html颜色值)字符串转为UIColor +(UIColor *) hexStringToColor: (NSString *) stringToConvert { NSString ...

  2. iOS开发-从16进制颜色中获取UIColor

    目前iOS中设置UIColor只能使用其枚举值.RGB等方法,不能直接将常用的16进制颜色值直接转为UIColor对象,所以写了点代码,将16进制颜色值转为UIColor. 代码如下, //头文件#i ...

  3. iOS 16进制颜色和UIcolor的转换

    各种颜色之间的转换,会陆续更新, 实现了 16进制颜色(HEX).RGBA.HSBA.UIColor之间的  相互转换 使用示例(加号方法,类名调用) //UIColor 转 RGB.HSB RGBA ...

  4. C# RGB与16进制颜色转换方法

    http://www.cnblogs.com/goldarch/archive/2010/08/16/1801053.html #region [颜色:16进制转成RGB]        /// &l ...

  5. swift - 16进制颜色扩展(1.支持# 2.支持不带# , 3支持带0X)

    /** * 设置16进制颜色: * 可识别类型 * 1:有# * 2:没有# * 3:含有0X */ extension UIColor{ class func hexadecimalColor(he ...

  6. C#中一个简单的匹配16进制颜色的正则测试

    using System; using System.Text.RegularExpressions; namespace Test { class Program { //匹配16进制颜色代码的正则 ...

  7. 16进制颜色字符串转为UIColor

    //16进制颜色(html颜色值)字符串转为UIColor +(UIColor *) hexStringToColor: (NSString *) stringToConvert {      NSS ...

  8. iOS 16进制颜色转换10进制颜色

    +(UIColor *)colorWithHexString:(NSString *)coloStr{ //    检索  去下空格和换行 转成大写 NSString *cString = [[col ...

  9. 颜色选择器 rgb 与16进制 颜色转换

    1. h5 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

随机推荐

  1. 编程入门-Eclipse项目导出和导入

    编程入门-Eclipse项目导出和导入 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.导出项目 1>.如下图所示,在项目目录上右击鼠标,依次点击"Export& ...

  2. 项目版本回退后出现java compiler level does not match the version of the installed java project facet错误的解决

    今天项目出问题了,采取了项目版本回退的方法解决了代码不能够下拉和上送的问题以后,出现如下错误,项目是微服务的,更新相关的依赖项目,仍得不到解决,检查mapper.xml文件亦没问题.然后在控制台那块发 ...

  3. QF中间件

    QF中间件使用说明          QF中间件是在2020年春节期间出现新型冠状病毒感染的肺炎疫情不敢外出,闲来无事编写的.编程是业余爱好,平时编程只会拖控件,中间件可能存在未知Bug,这个版本也只 ...

  4. linux提交代码到github

    1.首先你得注册个github账户 .... 2.新建项目(可以选择私有或者公开的) 3.上述github代码仓库建立好了 ,就回到自己的linux服务器 3.1  在自己的项目目录里 qi 3.1. ...

  5. C语言-浮点类型

    C语言-浮点类型 浮点类型 在0的两侧有一小块区域,这个区域非常接近0,但是不等于0,是float(表达范围数量级10^-38^)或者double(达范围数量级10^-308^)无法表达的,而0是可以 ...

  6. redhat8 不支持ansible批量管理解决方案

    redhat8默认不安装python,因此无法通过python去管理,直接上解决方案. dnf install python3 -y alternatives --set python /usr/bi ...

  7. ansible下载文件的多种方式

    对于ansible来说,下载文件是一个很重要的课题,这是build或者deploy的第一步,通常来讲由于不同项目的差异,可能我们的代码包或者资源文件保存在于http,github,nexus,ftp, ...

  8. ArchLinux安装KDE桌面

    ArchLinux安装KDE桌面 一.链接网络 1.有线 # dhcpcd 2.无线 # wifi-menu 3.检查 # ping www.baidu.com 二.安装X服务 # pacman -S ...

  9. POJ 1129:Channel Allocation 四色定理+暴力搜索

    Channel Allocation Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 13357   Accepted: 68 ...

  10. 配置gitlab代码提交之后自动触发jenkins

    https://www.cnblogs.com/bugsbunny/p/7919993.html