我們在做iOS開發(fā),給一個(gè) view添背景顏色時(shí),一般都是用到RGB顏色,比如下面這樣的
self.view.backgroundColor=[UIColor colorWithRed:0.578 green:0.720 blue:1.000 alpha:1.000];
然后美工給我們作圖的時(shí)候往往給我們的色值都是十六進(jìn)制的顏色, 比如這樣的

如果老大不管你的話,可以直接用滴管直接吸取這個(gè)顏色,但是一般情況下都會(huì)有誤差,所以筆者不建議這么用,這需要將#6cabdf轉(zhuǎn)換成UIColor供我們使用,筆者寫了一個(gè)UIColor拓展的類方法直接調(diào)用,方便簡潔,調(diào)用如下。
首先導(dǎo)入
//建議寫到.pch文件中 方便全項(xiàng)目調(diào)用
#import "UIColor+ColorChange.h"
調(diào)用的時(shí)候直接傳入#6cabdf即可
self.view.backgroundColor=[UIColor colorWithHexString:@"#6cabdf"];
運(yùn)行效果圖:

這樣顏色基本上就跟美工給的顏色一樣啦。
具體實(shí)現(xiàn)方法如下,
在UIColor+ColorChange.h中
#import <UIKit/UIKit.h>
@interface UIColor (ColorChange)
// 顏色轉(zhuǎn)換:iOS中(以#開頭)十六進(jìn)制的顏色轉(zhuǎn)換為UIColor(RGB)
+ (UIColor *) colorWithHexString: (NSString *)color;
@end
在UIColor+ColorChange.m中
#import "UIColor+ColorChange.h"
@implementation UIColor (ColorChange)
+ (UIColor *) colorWithHexString: (NSString *)color
{
NSString *cString = [[color stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];
// String should be 6 or 8 characters
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];
// 從六位數(shù)值中找到RGB對(duì)應(yīng)的位數(shù)并轉(zhuǎn)換
NSRange range;
range.location = 0;
range.length = 2;
//R、G、B
NSString *rString = [cString substringWithRange:range];
range.location = 2;
NSString *gString = [cString substringWithRange:range];
range.location = 4;
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
基本實(shí)現(xiàn)方法就是這樣啦,有需要的或者感興趣的朋友可以復(fù)制直接帶走,如果使用過程中遇到問題,可以再聯(lián)系筆者,筆者再盡力修改修改,如果覺得筆者寫的還行,可以關(guān)注一下筆者,筆者不定期分享一些好玩的實(shí)用的類方法和demo給大家。
筆者的其他文章:
iOS開發(fā)-輕松學(xué)會(huì)封裝自定義視圖view(自定義彈框封裝詳解)
http://www.itdecent.cn/p/de2ecfd770c2
iOS開發(fā)-兩句代碼快速實(shí)現(xiàn)無限輪播圖(基于ScrollView封裝)
http://www.itdecent.cn/p/d240bd977689
iOS開發(fā)-一句代碼調(diào)用實(shí)現(xiàn)網(wǎng)絡(luò)的監(jiān)測功能(基于AFNetworkReachabilityManager的封裝)
http://www.itdecent.cn/p/b901ad0c1d81
如果有不足或者錯(cuò)誤的地方還望各位讀者批評(píng)指正,可以評(píng)論留言,筆者收到后第一時(shí)間回復(fù)。
QQ/微信:790057066 。
簡書號(hào):iOS_凱:http://www.itdecent.cn/users/86b0ddc92021/latest_articles
GitHub個(gè)人主頁:https://github.com/18811314750
歡迎各位前來指教,star,感謝各位的閱讀。