IOS小技巧——如何将美工的16进制颜色转换成IOS中的RGB颜色

原创 2015年07月08日 00:50:56

// 在我们实际工作中,美工给我们的UI图在是表明256位设置的UIColor,而是给我们16进制的颜色代码,例如@”#ffffff”等那么,我们该如何将这些颜色代码转换成我们需要的颜色呢?

+ (UIColor *)colorWithHexString:(NSString *)hexString alpha:(CGFloat)alpha
{
    NSString *cString = [[hexString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];

    // 字符串必须为6位或8位的才能识别,所以叫你的美工别偷懒喔,要写全,如果颜色代码不对默认为黑色

    if ([cString length] < 6) return [UIColor blackColor];
    // strip 0X if it appears
    if ([cString hasPrefix:@"0X"]) cString = [cString substringFromIndex:2];
    if ([cString hasPrefix:@"#"]) cString = [cString substringFromIndex:1];
    if ([cString length] != 6) return [UIColor blackColor];

    //将字符串转换成我们需要的RGB颜色

    NSRange range;
    range.location = 0;
    range.length = 2;
    // 获取0~2位字符串
    NSString *rString = [cString substringWithRange:range];
    range.location = 2;
    // 获取2~4位字符串
    NSString *gString = [cString substringWithRange:range];
    range.location = 4;
    // 获取4~6位字符串
    NSString *bString = [cString substringWithRange:range];

   // 转换成RGB的值
    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];
}

但是我们也有更加简单的方法

#define UIColorFromRGB(rgbValue) [UIColor \
colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \
blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]

利用这个宏定义,也能达到我么的需求

版权声明:本文为博主原创文章,未经博主允许不得转载。

iOS 十六进制转化为RGB值

#import @interface UIColor (NotRGB)+ (UIColor *)colorWithRed:(NSInteger)red green:(NSInteger)green b...
  • u012265444
  • u012265444
  • 2016年08月08日 16:51
  • 1820

iOS开发中十六进制颜色与RGB的相互转化

我们 常常在iOS界面色调搭配的时候选色比较麻烦,因为系统大多提供给我们的是一些基本颜色,还有就是取色器强行配色。但实际我们所需要的更多色调都有具体的十六进制表示,接下来我们就看看十六进制颜色与我们经...
  • Kenn_lee
  • Kenn_lee
  • 2016年09月21日 19:18
  • 1271

ios客户端学习-颜色将16位值转换成rgb值,UIColor与字符串互转

#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0...
  • liudan302698481
  • liudan302698481
  • 2015年04月10日 11:27
  • 3358

iOS 获取十六进制颜色显示RGB,根据颜色画图片

//从十六进制字符串获取颜色, //color:支持@“#123456”、 @“0X123456”、 @“123456”三种格式 + (UIColor *)colorWithHexString:(...
  • tuwanli125
  • tuwanli125
  • 2016年02月25日 15:19
  • 869

objective-C把16进制的颜色转换成RGB,包括透明度哦~

最近在开发中遇到了16进制的颜色转换成RGB的问题,我在网上看了好多感觉没有适合自己的,现在我根据我遇到的问题为大家分享下,希望对遇到同样问题的小伙伴有帮助。 #FFFFFFFF其中#后面的前2位为...
  • u010757842
  • u010757842
  • 2016年04月24日 12:19
  • 1306

iOS开发:RGB专栏(RGB与16进制色互转)

iOS开发中,除了使用固定的基本颜色之外,常常也需要使用自定义的颜色,那么这就涉及到了RGB的色值使用问题。     一、对RGB的色值使用的时候,可将对颜色的设置定义成宏(设置宏定义),方便开发使用...
  • CC1991_
  • CC1991_
  • 2017年06月01日 11:21
  • 1357

js 颜色格式rgb->16进制的转换

http://www.zhangxinxu.com/wordpress/2010/03/javascript-hex-rgb-hsl-color-convert/ 这个链接是一篇对颜色格式转换的...
  • H5_wheat
  • H5_wheat
  • 2017年10月11日 10:34
  • 86

RGB颜色转换16进制

网页中表示颜色的常见方法有: 1.Color Name(颜色名称) 用颜色名称来指定颜色,这种方法简洁直观,一看就知道是什么颜色,但最大的缺点是颜色的名称太少,不能有效的表示一些较丰富的颜色 2....
  • NitefullSand
  • NitefullSand
  • 2016年11月30日 11:11
  • 798

iOS开发:APP设置颜色时候直接使用十六进制、RGB色值设置颜色

在APP开发过程中,有些时候需要自定义颜色,而且UI给的颜色的色值要么是十六进制的,要么是RGB的,这样如果没有使用相关的转换方法是不能直接使用的,那么下面就简单说一下这两种方式转换的使用方式,掌握之...
  • CC1991_
  • CC1991_
  • 2017年07月19日 11:23
  • 871

iOS开发-轻松实现十六进制颜色(#开头)转RGB颜色_Swift/OC

我们在做iOS开发,给一个 view添背景颜色时,一般都是用到RGB颜色,比如下面这样的 self.view.backgroundColor=[UIColor colorWithRed:0....
  • Lea__DongYang
  • Lea__DongYang
  • 2017年01月18日 18:17
  • 1994
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IOS小技巧——如何将美工的16进制颜色转换成IOS中的RGB颜色
举报原因:
原因补充:

(最多只允许输入30个字)