UIColor支持十六進(jìn)制,生成隨機(jī)顏色谈山,根據(jù)一個顏色生成一張圖片

UIColor+Hex.h

#import <UIKit/UIKit.h>  
  
#define RGBA_COLOR(R, G, B, A) [UIColor colorWithRed:((R) / 255.0f) green:((G) / 255.0f) blue:((B) / 255.0f) alpha:A]  
#define RGB_COLOR(R,G,B) [UIColor colorWithRed:((R) / 255.0f) green: ((G) / 255.0f) blue:((B) / 255.0f) alpha: 1.0f]
//隨機(jī)生成顏色
#define RandomColor random(arc4random_uniform(256), arc4random_uniform(256), arc4random_uniform(256), arc4random_uniform(256))

@interface UIColor (Hex)  
  
// 從十六進(jìn)制字符串獲取顏色智亮,  
// color:支持@“#123456”忆某、 @“0X123456”、 @“123456”三種格式  
+ (UIColor *)colorWithHexString:(NSString *)color alpha:(CGFloat)alpha;  
+ (UIColor *)colorWithHexString:(NSString *)color;
//根據(jù)UIColor一個顏色生成一張圖片
+ (UIImage *)imageWithColor:(UIColor *)color;

@end

UIColor+Hex.m

#import "UIColor+Hex.h"  
  
@implementation UIColor (Hex)  
  
+ (UIColor *)colorWithHexString:(NSString *)color alpha:(CGFloat)alpha {  
    // 刪除字符串中的空格  
    NSString * colorStr = [[color stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];  
      
    // String should be 6 or 8 characters  
    if ([colorStr length] < 6) {  
        return [UIColor clearColor];  
    }  
      
    // strip 0X if it appears  
    // 如果是0x開頭的阔蛉,那么截取字符串弃舒,字符串從索引為2的位置開始,一直到末尾  
    if ([colorStr hasPrefix:@"0X"]) {  
        colorStr = [colorStr substringFromIndex:2];  
    }  
      
    // 如果是#開頭的状原,那么截取字符串聋呢,字符串從索引為1的位置開始,一直到末尾  
    if ([colorStr hasPrefix:@"#"]) {  
        colorStr = [colorStr substringFromIndex:1];  
    }  
      
    // 除去所有開頭字符后 再判斷字符串長度  
    if ([colorStr length] != 6) {  
        return [UIColor clearColor];  
    }  
      
    // Separate into r, g, b substrings  
    NSRange range;  
    range.location = 0;  
    range.length = 2;  
    //red  
    NSString * redStr = [colorStr substringWithRange:range];  
    //green  
    range.location = 2;  
    NSString * greenStr = [colorStr substringWithRange:range];  
    //blue  
    range.location = 4;  
    NSString * blueStr = [colorStr substringWithRange:range];  
      
    // Scan values 將十六進(jìn)制轉(zhuǎn)換成二進(jìn)制  
    unsigned int r, g, b;  
    [[NSScanner scannerWithString:redStr] scanHexInt:&r];  
    [[NSScanner scannerWithString:greenStr] scanHexInt:&g];  
    [[NSScanner scannerWithString:blueStr] scanHexInt:&b];  
    return [UIColor colorWithRed:((float)r / 255.0f) green:((float)g / 255.0f) blue:((float)b / 255.0f) alpha:alpha];  
}  
 
+ (UIColor *)colorWithHexString:(NSString *)color {
    return [self colorWithHexString:color alpha:1.0f];
}

+ (UIImage *)imageWithColor:(UIColor *)color {
    CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f); //寬高 1.0只要有值就夠了
    UIGraphicsBeginImageContext(rect.size); //在這個范圍內(nèi)開啟一段上下文
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetFillColorWithColor(context, [color CGColor]);//在這段上下文中獲取到顏色UIColor
    CGContextFillRect(context, rect);//用這個顏色填充這個上下文

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();//從這段上下文中獲取Image屬性,,,結(jié)束
    UIGraphicsEndImageContext();

    return image;
   }

@end

參考文章:
OC_UIColor 類擴(kuò)展支持十六進(jìn)制
iOS開發(fā)小方法:根據(jù)UIColor一個顏色生成一張圖片
iOS -UIColor隨機(jī)生成顏色的方法

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末颠区,一起剝皮案震驚了整個濱河市削锰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌毕莱,老刑警劉巖器贩,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異朋截,居然都是意外死亡蛹稍,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進(jìn)店門部服,熙熙樓的掌柜王于貴愁眉苦臉地迎上來唆姐,“玉大人,你說我怎么就攤上這事饲宿∠贸辏” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵瘫想,是天一觀的道長仗阅。 經(jīng)常有香客問我,道長国夜,這世上最難降的妖魔是什么减噪? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮车吹,結(jié)果婚禮上筹裕,老公的妹妹穿的比我還像新娘。我一直安慰自己窄驹,他們只是感情好朝卒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著乐埠,像睡著了一般抗斤。 火紅的嫁衣襯著肌膚如雪囚企。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天瑞眼,我揣著相機(jī)與錄音龙宏,去河邊找鬼。 笑死伤疙,一個胖子當(dāng)著我的面吹牛银酗,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播徒像,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼黍特,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了厨姚?” 一聲冷哼從身側(cè)響起衅澈,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤键菱,失蹤者是張志新(化名)和其女友劉穎谬墙,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體经备,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拭抬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了侵蒙。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片造虎。...
    茶點(diǎn)故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖纷闺,靈堂內(nèi)的尸體忽然破棺而出算凿,到底是詐尸還是另有隱情,我是刑警寧澤犁功,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布氓轰,位于F島的核電站,受9級特大地震影響浸卦,放射性物質(zhì)發(fā)生泄漏署鸡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一限嫌、第九天 我趴在偏房一處隱蔽的房頂上張望靴庆。 院中可真熱鬧,春花似錦怒医、人聲如沸炉抒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽焰薄。三九已至禽笑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蛤奥,已是汗流浹背佳镜。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工绑警, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留玉锌,地道東北人。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓翔横,卻偏偏與公主長得像缅刽,于是被迫代替她去往敵國和親啊掏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容