iOS RGB颜色封装
使用类别创建
.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颜色封装的更多相关文章
- IOS RGB颜色转换
- (UIColor *)getColor:(NSString *)hexColor { unsigned int red,green,blue; NSRange range; range.lengt ...
- iOS中RGB颜色转换
iOS中RGB常用的色值,同时可将对颜色的设置定义成宏,方便开发应用,如: // RGB颜色转换(16进制->10进制) #define UIColorFromRGB(rgbValue) [UI ...
- IOS 通用颜色快速生成代码
通常情况下我们是直接使用类似于#EE1289这样的代码来直接表示RGB颜色的.但是在IOS语言中,它的颜色表示方式比较另类,他是使用一个0-1的小数来表示颜色值的.这样的实现,或许能够表示更多的颜色值 ...
- RGB颜色中的参数是变量的时候,为什么要加上两个+号在左右?
<script> function draw(){ var c=document.getElementById("mycanvas"); var cxt=c.getCo ...
- RGB颜色二值化
原理:RGB颜色根据计算'灰度'的公式,可以转化为黑白2种颜色,实现二值化. 业务场景的应用:可以根据背景颜色,取一个黑色或白色的颜色,作为背景色上的文案字体颜色 具体代码: function get ...
- HTML中RGB颜色查询对照表
RGB颜色查询对照表 因为兼容性问题,色阶板功能只能在IE浏览器中运行 RGB颜色对照表 #FFFFFF #FFFFF0 #FFFFE0 #FFFF00 #FFFAFA ...
- RGB颜色查询对照表
RGB颜色查询对照表 RGB颜色对照表 #FFFFFF2015-02-05 #FFFFF0 #FFFFE0 #FFFF00 #FFFAFA #FFFAF0 #FFF ...
- [置顶] RGB颜色查询对照表
因为兼容性问题,色阶板功能只能在IE浏览器中运行 RGB颜色对照表 #FFFFFF #FFFFF0 #FFFFE0 #FFFF00 #FFFAFA #FFFAF0 #FFF ...
- iOS状态栏颜色
下面截图给出修改 iOS 状态栏颜色的 4 种方式 Target.png Info.plist.png Storyboard.png code.png 其中第四张图中的代码,直接写在你的任何一个 Vi ...
随机推荐
- C#中对Excel进行操作
工作中要处理一批数据,主要是处理从别处导出来的Excel表格(大概有一千多行,三十多列),拿到表格对Excel表格进行分析,按照一定的规则进行拆分成为一万多行的数据:首先这个需求要用程序进行处理的背景 ...
- java新版中唤醒指定线层对象
import java.util.concurrent.locks.*; class Do9 { public static void main(String[] args) { Resource r ...
- spring 配置文件 引入外部的property文件的两种方法
spring 的配置文件 引入外部的property文件的两种方法 <!-- 引入jdbc配置文件 方法一 --> <bean id="propertyConfig ...
- Sicily 1156. Binary tree
题目地址:1156. Binary tree 思路: 如何愉快地前序输出呢,要在存储数据的时候根据位置来存放数据! 一开始被自己蠢哭,一直以为第一个输入的就是根结点(例子的祸害呀啊啊啊!!!!),结果 ...
- Objective-C中instancetype和id的区别
要区分instancetype和id,首先要弄清楚什么是关联返回类型(Related Result Type). 关联返回类型即一个方法的返回类型就是调用这个方法的调用者的类型.具有下列条件的方法具有 ...
- NonUniqueObjectException 问题
org.hibernate.NonUniqueObjectException: a different object with the same identifier value was alread ...
- 17--Box2D使用(三、触摸交互)
Box2D引擎与触摸的交互通过创建鼠标关节以及碰撞检测来得到触摸点下面的刚体,在根据触摸操作完成相应的功能.首先添加触摸响应函数声明 virtual void ccTouchesBegan(cocos ...
- google反向代理网址收集
前言 亲,还在为谷歌被墙而懊恼么?还在苦苦搜集FQ手段么?往下看吧? 最近在网站链接来源统计中,发现了很多反向代理了谷歌的链接,故搜集在这里,供需要的人使用,使用如下链接谷歌搜素不需要FQ哦?下面地址 ...
- jquery 点点滴滴小记
字符截取显示 var text = $(".content").text(); var textNum = text.length; var textInt = text.slic ...
- Blocks(POJ 3734 矩阵快速幂)
Blocks Input The first line of the input contains an integer T(1≤T≤100), the number of test cases. E ...