UIColor的16進製制色值,16進製制字串擴充套件

2021-07-09 05:04:33 字數 3018 閱讀 5340

@inte***ce uicolor (hex)

/***  16進製制字串轉化為顏色

*  @param hexstr 16進製制字串

支援@"0x..." @"0x..." @"#..." @"..."

*  @return uicolor

*/+ (uicolor *)colorwithhexstring:(nsstring *)hexstr;

/***  16進製制字串轉化為顏色

*  @param hexstr 16進製制字串

*  @param alpha  透明度

*  @return uicolor

*/+ (uicolor *)colorwithhexstring:(nsstring *)hexstr alpha:(nsinteger)alpha;

@end

/***  16進製制色值轉化顏色

*  @param hexinteger 16進製制色值

*  @return uicolor

*/+ (uicolor *)colorwithhex:(nsinteger)hexinteger;

/***  16進製制色值轉化顏色

*  @param hexinteger 16進製制色值

*  @param alpha      透明度

*  @return uicolor

*/+ (uicolor *)colorwithhex:(nsinteger)hexinteger alpha:(nsinteger)alpha;

@implementationuicolor (hex)

/***  16進製制字串轉化為顏色

*/+ (uicolor *)colorwithhexstring:(nsstring *)hexstr

//進一步判斷,處理

if ([colorstr hasprefix:@"0x"])

if ([colorstr hasprefix:@"#"])

if (colorstr.length

< 6)

nsrange range;

range.length = 2;

//r

range.location = 0;

nsstring *rstring = [colorstr substringwithrange:range];

//g

range.location = 2;

nsstring *gstring = [colorstr substringwithrange:range];

//b

range.location = 4;

nsstring *bstring = [colorstr substringwithrange:range];

unsigned

int r, g, b;

[[nsscanner

scannerwithstring:rstring] scanhexint:&r]; [[

nsscanner

scannerwithstring:bstring] scanhexint:&g]; [[

nsscanner

scannerwithstring:gstring] scanhexint:&b];

return [uicolor

colorwithred:((float)r / 255.0) green:((float)g / 255.0) blue:((float)b / 255.0) alpha:1];

}+ (uicolor *)colorwithhexstring:(nsstring *)hexstr alpha:(nsinteger)alpha

//進一步判斷,處理

if ([colorstr hasprefix:@"0x"])

if ([colorstr hasprefix:@"#"])

if (colorstr.length

< 6)

nsrange range;

range.length = 2;

//r

range.location = 0;

nsstring *rstring = [colorstr substringwithrange:range];

//g

range.location = 2;

nsstring *gstring = [colorstr substringwithrange:range];

//b

range.location = 4;

nsstring *bstring = [colorstr substringwithrange:range];

unsigned

int r, g, b;

[[nsscanner

scannerwithstring:rstring] scanhexint:&r]; [[

nsscanner

scannerwithstring:bstring] scanhexint:&g]; [[

nsscanner

scannerwithstring:gstring] scanhexint:&b];

return [uicolor

colorwithred:((float)r / 255.0) green:((float)g / 255.0) blue:((float)b / 255.0) alpha:alpha];

}/**

*  16進製制色值轉化顏色

*/+ (uicolor *)colorwithhex:(nsinteger)hexinteger

+ (uicolor *)colorwithhex:(nsinteger)hexinteger alpha:(nsinteger)alpha

@end

(1)巨集定義rgb_color和rgba_color可以設定顏色

(2)uicolor+hex擴充套件可以設定顏色

(3)導航欄上面的barbuttonitem怎麼設定為button

(4)button一些常用和不常用的屬性設定

關於16進製制顏色值轉換為UIColor的思考

大家都知道ios的uicolor提供的自定義初始化是通過rgb a 4個10進行制的引數,那麼為什麼用16進製制呢?因為web和安卓端以常識性用16進製制讀取,所以為了方便設計師出圖標註,很多時候都是16進製制的效果圖。而今天就是要討論一下,這個16進製制的轉換的方法。網頁顏色 維基百科 在html...

iOS 16進製制顏色和UIcolor的轉換

各種顏色之間的轉換,會陸續更新,實現了 16進製制顏色 hex rgba hsba uicolor之間的 相互轉換 使用示例 加號方法,類名呼叫 1 uicolor 轉 rgb hsb 2 rgbacolor colora colorconversion uicolortorgba uicolor ...

RGB顏色與16進製制色以及透明色

劉巨集亮的部落格 rgb顏色與16進製制色以及透明色是我們在開發經常要用到的,不太明白可以花幾分鐘看看 rgb色彩模式是工業界的一種顏色標準,是通過對紅 r 綠 g 藍 b 三個顏色通道的變化以及它們相互之間的疊加來得到各式各樣的顏色的,rgb即是代表紅 綠 藍三個通道的顏色,這個標準幾乎包括了人類...