iOS開發(fā)-一句代碼輕松實(shí)現(xiàn)十六進(jìn)制顏色(#開頭)轉(zhuǎn)RGB顏色

我們在做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)制的顏色, 比如這樣的

十六進(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,感謝各位的閱讀。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容