顏色相關(guān)的一些知識(shí)

OC 日常筆記碎片知識(shí)

  • 顏色的基本組成
    • 一種顏色由N個(gè)顏色通道組成
  • 顏色通道
    • 1個(gè)顏色通道占據(jù)8bit
    • 1個(gè)顏色通道的取值范圍
      • 10進(jìn)制 : [0, 255]
      • 16進(jìn)制 : [00, ff];
    • 常見的顏色通道
      • 紅色 red R
      • 綠色 green G
      • 藍(lán)色 blue B
      • 透明度 alpha A
    • R\G\B一樣的是灰色
  • 顏色的種類
    • 24bit顏色
      • 由R\G\B組成的顏色
      • 常見的表示形式
        • 10進(jìn)制(僅僅是用在CSS)
          • 紅色 : rgb(255,0,0)
          • 綠色 : rgb(0,255,0)
          • 藍(lán)色 : rgb(0,0,255)
          • 黃色 : rgb(255,255,0)
          • 黑色 : rgb(0,0,0)
          • 白色 : rgb(255,255,255)
          • 灰色 : rgb(80,80,80)
        • 16進(jìn)制(可以用在CSS\android)
          • 紅色 : #ff0000 #f00
          • 綠色 : #00ff00 #0f0
          • 藍(lán)色 : #0000ff #00f
          • 黃色 : #ffff00 #ff0
          • 黑色 : #000000 #000
          • 白色 : #ffffff #fff
          • 灰色 : #979797
    • 32bit顏色
      • 由R\G\B\A組成的顏色
      • 常見的表示形式
        • 10進(jìn)制(僅僅是用在CSS)
          • 紅色 : rgba(255,0,0,255)
          • 綠色 : rgba(0,255,0,255)
          • 藍(lán)色 : rgba(0,0,255,255)
          • 黃色 : rgba(255,255,0,255)
          • 黑色 : rgba(0,0,0,255)
          • 白色 : rgba(255,255,255,255)
        • 16進(jìn)制(#AARRGGBB, 僅僅是用在android)
          • 紅色 : #ffff0000
          • 綠色 : #ff00ff00
          • 藍(lán)色 : #ff0000ff
          • 黃色 : #ffffff00
          • 黑色 : #ff000000
          • 白色 : #ffffffff

*為了解決開發(fā)中遇到顏色解析,因此提供了分類.

  • -代碼演示:
#import <UIKit/UIKit.h>

@interface UIColor (Hex)

// 默認(rèn)alpha位1
+ (UIColor *)colorWithHexString:(NSString *)color;

//從十六進(jìn)制字符串獲取顏色,
//color:支持@“#123456”、 @“0X123456”、 @“123456”三種格式
+ (UIColor *)colorWithHexString:(NSString *)color alpha:(CGFloat)alpha;

@end
#import "UIColor+Hex.h"

@implementation UIColor (Hex)

+ (UIColor *)colorWithHexString:(NSString *)color alpha:(CGFloat)alpha
{
    //刪除字符串中的空格
    NSString *cString = [[color stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];
    // String should be 6 or 8 characters
    if ([cString length] < 6)
    {
        return [UIColor clearColor];
    }
    // strip 0X if it appears
    //如果是0x開頭的,那么截取字符串,字符串從索引為2的位置開始,一直到末尾
    if ([cString hasPrefix:@"0X"])
    {
        cString = [cString substringFromIndex:2];
    }
    //如果是#開頭的,那么截取字符串,字符串從索引為1的位置開始,一直到末尾
    if ([cString hasPrefix:@"#"])
    {
        cString = [cString substringFromIndex:1];
    }
    if ([cString length] != 6)
    {
        return [UIColor clearColor];
    }
    
    // Separate into r, g, b substrings
    NSRange range;
    range.location = 0;
    range.length = 2;
    //r
    NSString *rString = [cString substringWithRange:range];
    //g
    range.location = 2;
    NSString *gString = [cString substringWithRange:range];
    //b
    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:alpha];
}
__________________________________________________________
//默認(rèn)alpha值為1
+ (UIColor *)colorWithHexString:(NSString *)color
{
    return [self colorWithHexString:color alpha:1.0f];
}

@end
改變Label顏色.gif
最后編輯于
?著作權(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),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 顏色的基本組成一種顏色由N個(gè)顏色通道組成 顏色通道1個(gè)顏色通道占據(jù)8bit1個(gè)顏色通道的取值范圍10進(jìn)制 : [0...
    CoderRH閱讀 596評(píng)論 0 0
  • - 顏色的基本組成 - 一種顏色由N個(gè)顏色通道組成 - 顏色通道 - 1個(gè)顏色通道占據(jù)8bit - 1個(gè)顏色通道的...
    打電話記錯(cuò)號(hào)碼的人閱讀 1,319評(píng)論 0 1
  • 顏色相關(guān)的一些知識(shí) 顏色的基本組成一種顏色由N個(gè)顏色通道組成 顏色通道1個(gè)顏色通道占據(jù)8bit1個(gè)顏色通道的取值范...
    年輕歲月閱讀 682評(píng)論 0 0
  • 提到lambda表達(dá)式,就不得不提一下函數(shù)式表達(dá)式。函數(shù)式表達(dá)式與面向?qū)ο缶幊痰淖畲髤^(qū)別是面向?qū)ο缶幊淌菍?duì)數(shù)據(jù)進(jìn)行...
    程自舟閱讀 1,305評(píng)論 0 2
  • 周日晚餐就咱娘倆吃,娃為了可以吃到冰淇淋選擇了必勝客. 排隊(duì)時(shí)必勝客的標(biāo)配,在服務(wù)員拿菜單給我時(shí)娃發(fā)現(xiàn)有圖書可以看...
    就這個(gè)名字也不行閱讀 183評(píng)論 1 1

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