使用类别创建

.h文件

#import <UIKit/UIKit.h>

@interface UIColor (HexColor)

+ (UIColor *)colorWithHex:(NSString *)hex;

@end

.m文件

#import "UIColor+HexColor.h"

@implementation UIColor (HexColor)

+ (UIColor *)colorWithHex:(NSString *)hex {
unsigned int red, green, blue;
NSRange range;
range.length = ; range.location = ;
if (hex.length == ) {
range.location = ;
}
[[NSScanner scannerWithString:[hex substringWithRange:range]]scanHexInt:&red];
range.location += ;
[[NSScanner scannerWithString:[hex substringWithRange:range]]scanHexInt:&green];
range.location += ;
[[NSScanner scannerWithString:[hex substringWithRange:range]]scanHexInt:&blue]; return [UIColor colorWithRed:(float)(red / 255.0) green:(float)(green / 255.0) blue:(float)(blue / 255.0) alpha:1.0];
} @end

还有一个类似的方法,代码如下:

+ (UIColor *)colorWithHex:(NSString *)hex {  
    // Remove `#` and `0x`  
    if ([hex hasPrefix:@"#"]) {  
      hex = [hex substringFromIndex:];  
    } else if ([hex hasPrefix:@"0x"]) {  
        hex = [hex substringFromIndex:];  
    }  
  
    // Invalid if not 3, 6, or 8 characters  
    NSUInteger length = [hex length];  
    if (length !=  && length !=  && length != ) {  
        return nil;  
    }  
  
    // Make the string 8 characters long for easier parsing  
    if (length == ) {  
        NSString *r = [hex substringWithRange:NSMakeRange(, )];  
        NSString *g = [hex substringWithRange:NSMakeRange(, )];  
        NSString *b = [hex substringWithRange:NSMakeRange(, )];  
        hex = [NSString stringWithFormat:@"%@%@%@%@%@%@ff",                r, r, g, g, b, b];  
    } else if (length == ) {  
        hex = [hex stringByAppendingString:@"ff"];  
    }  
  
    CGFloat red = [[hex substringWithRange:NSMakeRange(, )] _hexValue] / 255.0f;  
    CGFloat green = [[hex substringWithRange:NSMakeRange(, )] _hexValue] / 255.0f;  
    CGFloat blue = [[hex substringWithRange:NSMakeRange(, )] _hexValue] / 255.0f;  
    CGFloat alpha = [[hex substringWithRange:NSMakeRange(, )] _hexValue] / 255.0f;  
  
    return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];   }  

iOS RGB颜色封装的更多相关文章

  1. IOS RGB颜色转换

    - (UIColor *)getColor:(NSString *)hexColor { unsigned int red,green,blue; NSRange range; range.lengt ...

  2. iOS中RGB颜色转换

    iOS中RGB常用的色值,同时可将对颜色的设置定义成宏,方便开发应用,如: // RGB颜色转换(16进制->10进制) #define UIColorFromRGB(rgbValue) [UI ...

  3. IOS 通用颜色快速生成代码

    通常情况下我们是直接使用类似于#EE1289这样的代码来直接表示RGB颜色的.但是在IOS语言中,它的颜色表示方式比较另类,他是使用一个0-1的小数来表示颜色值的.这样的实现,或许能够表示更多的颜色值 ...

  4. RGB颜色中的参数是变量的时候,为什么要加上两个+号在左右?

    <script> function draw(){ var c=document.getElementById("mycanvas"); var cxt=c.getCo ...

  5. RGB颜色二值化

    原理:RGB颜色根据计算'灰度'的公式,可以转化为黑白2种颜色,实现二值化. 业务场景的应用:可以根据背景颜色,取一个黑色或白色的颜色,作为背景色上的文案字体颜色 具体代码: function get ...

  6. HTML中RGB颜色查询对照表

    RGB颜色查询对照表     因为兼容性问题,色阶板功能只能在IE浏览器中运行 RGB颜色对照表   #FFFFFF   #FFFFF0   #FFFFE0   #FFFF00   #FFFAFA   ...

  7. RGB颜色查询对照表

    RGB颜色查询对照表     RGB颜色对照表   #FFFFFF2015-02-05   #FFFFF0   #FFFFE0   #FFFF00   #FFFAFA   #FFFAF0   #FFF ...

  8. [置顶] RGB颜色查询对照表

    因为兼容性问题,色阶板功能只能在IE浏览器中运行 RGB颜色对照表   #FFFFFF   #FFFFF0   #FFFFE0   #FFFF00   #FFFAFA   #FFFAF0   #FFF ...

  9. iOS状态栏颜色

    下面截图给出修改 iOS 状态栏颜色的 4 种方式 Target.png Info.plist.png Storyboard.png code.png 其中第四张图中的代码,直接写在你的任何一个 Vi ...

随机推荐

  1. 表单验证提交——submit与button

    之前做东西接触过表单验证提交,但是都是为了完成工作,做完就做完了,没有注过表单验证提交有几种方法,各方法都有啥区别.今天瞎折腾了一下,对他们研究了一下,如下是我个人的理解: submit: 从字面上看 ...

  2. 利用.htaccess绑定域名到子目录

    前提首先得把域名绑定绑定了,比如把dev.ccvita.com解析到211.136.108.190这个IP其次是在网站管理面板里,为网站绑定dev.ccvita.com最后编辑配置.htaccess文 ...

  3. Jetty开发(2)

    部署web应用 配置了部署模块的Jetty服务器实例能够在webapps目录下热部署web应用.在webapps目录下标准的War包和jetty的配置文件能够被热部署进服务器需要符合下述规则: exa ...

  4. Spark问题记录

    Spark 多线程时的序列化问题  临时记录 Exception in thread "Thread-28" org.apache.spark.SparkException: Ta ...

  5. iOS开发 自定义navigationleftItem 之后手势失效的问题

    @property (nonatomic, strong) UIViewController *currentShowVC; //设置代理 self.navigationController.inte ...

  6. UITableView常用属性和方法 - 永不退缩的小白菜

    UITableView常用属性和方法 - 永不退缩的小白菜 时间 2014-05-27 01:21:00  博客园精华区原文  http://www.cnblogs.com/zhaofucheng11 ...

  7. CentOS7配置Nodejs环境安装记录

    今天购买了阿里云服务器,系统选的是CentOS7,下面记录下在它上面安装Nodejs环境的过程,本次操作是直接连接的阿里云服务器的管理终端. 1.由于是纯净的环境,先通过以下命令安装nodejs编译及 ...

  8. 从汇编来看c语言

    一. 学习过程 从C语言的角度提出一些问题,这些问题再从汇编的角度考虑,还真的很有意思. (1) 我们用高级语言编程时,一般不可能不用到变量,但是一定要用到变量吗?还有这些变量从汇编的角度是怎么实现的 ...

  9. coredump查原因

    1. dmesg |tail -n 1 2. objdump -DCI ./a.out 示例: $ cat a.cpp #include <stdio.h> int main(){ int ...

  10. mysql 从data文件恢复数据库

    安装在D:\mysql\mysql-5.6.24-winx64下的mysql 由于系统坏了,移到另外一台机器上启动 步骤如下 1.复制以前的mysql安装文件及data文件下:2.全新安装mysql3 ...