iOS 16進製制顏色的巨集

2022-05-06 01:15:07 字數 1554 閱讀 5468

ios 16進製制顏色的巨集

// 引數格式為:0xffffff  16進製制

#define kcolorwithrgb(rgbvalue) \

[uicolor colorwithred:((float)((rgbvalue & 0xff0000) >> 16)) / 255.0 \

green:((float)((rgbvalue & 0xff00) >> 8)) / 255.0 \

blue :((float)(rgbvalue & 0xff)) / 255.0 alpha:1.0]

kcolorwithrgb(0xff0000); 相當於 [uicolor redcolor];

// 引數格式為:222,222,222

#define uicolorwithrgb(r, g, b) [uicolor colorwithred:(r) / 255.f green:(g) / 255.f blue:(b) / 255.f alpha:1.f]

很多地方我們都使用16進製制顏色,但iphone使用的是uicolor物件,不直接支援16進製制顏色,為此,需要我們手動將16進製制顏色轉換為uicolor。

- (uicolor *)getcolor:(nsstring*)hexcolor

[self.view setbackgroundcolor:[self getcolor:@"ff0000"]];

個面試題:使用內聯函式把@「#ff3344」轉成uicolor

- (uicolor *) stringtocolor:(nsstring *)str

unsigned red,green,blue;

nsrange range;

range.length = 2;

range.location = 1;

[[nsscanner scannerwithstring:[str substringwithrange:range]] scanhexint:&red];

range.location = 3;

[[nsscanner scannerwithstring:[str substringwithrange:range]] scanhexint:&green];

range.location = 5;

[[nsscanner scannerwithstring:[str substringwithrange:range]] scanhexint:&blue];

uicolor *color= [uicolor colorwithred:red/255.0f green:green/255.0f blue:blue/255.0f alpha:1];

return color;

}0xff0000 或 #ff0000(#為特殊字元 有可能把這種為空) 或ff0000

+ (uicolor *) colorwithhexstring: (nsstring *)color

{nsstring *cstring = [[color

stringbytrimmingcharactersinset:[nscharacterset

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

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

iOS開發 16進製制顏色轉換

專案中經常會用到顏色轉換,有的是通過十六進製制轉成數字轉顏色,想簡單的點直接通過字串轉一下,簡單擴充套件了一下分類uicolor,如下 uicolor colorwithhex nsstring hexcolor ios技術交流 228407086 uicolor colorwithhex nsst...

16進製制顏色

r g b 紅 綠 藍 0 0 0 偏向色系 顏色寫法一般有 background red background ff0000 background rgb 255,0,0 background red 是直接用對應的英語單詞 background ff0000 是用16進製制來表達顏色 也可以寫成...