2012-03-15 55 views
1

我想應用自定義的RGB色彩背景,但不顯示預期的顏色,而是它總是顯示白色:背景顏色未按預期

UIColor *color = [UIColor colorWithRed:76 green:76 blue:76 alpha:1.0]; 
mainTable.backgroundColor  = color; 
self.scrollView.backgroundColor = color; 

但是如果我改變一個PARAM以最大紅色:255,然後我看到紅色,任何想法,爲什麼我沒有看到我要找的顏色:76 76 76應該給出某種深灰色的顏色。

THX

回答

4

colorWithRed:green:blue:alpha的參數需要的規模是CGFloat期從0到1,其中0是0和1爲255。因此,你的代碼應該看起來更像是這樣的:

UIColor *color = [UIColor colorWithRed:76.0/255.0 
           green:76.0/255.0 
            blue:76.0/255.0 
           alpha:1.0]; 
+0

我在幹什麼:)。我在文檔中閱讀,但由於某種原因,我僅使用0-1作爲alpha。非常感謝你讓我免於浪費大量時間:) – bneupaane 2012-03-15 21:11:12

+0

不要忘記.0(或f後綴)。否則,您的操作將以整數計算。可能的結果只有0和1。這使我有一天瘋了:) – 2012-03-15 21:38:16

1

你有CGFloat 0和1之間,而不是int工作爲您

UIColor *color = [UIColor colorWithRed:76 green:76 blue:76 alpha:1.0];

iOS API

colorWithRed:綠:藍:阿爾法:

創建並返回使用指定的不透明度和RGB 成分值的顏色對象。 +(*的UIColor)colorWithRed:(CGFloat的)紅,綠:(CGFloat的)綠藍:(CGFloat的)藍色阿爾法:(CGFloat的)阿爾法參數

The red component of the color object, specified as a value from 0.0 to 1.0. green 

The green component of the color object, specified as a value from 0.0 to 1.0. blue 

The blue component of the color object, specified as a value from 0.0 to 1.0. alpha 

The opacity value of the color object, specified as a value from 0.0 to 1.0. 
2

這送花兒給人拉去。無論如何,我的很多圖形應用程序都向我展示了十六進制顏色。我們已將所有代碼切換爲使用宏將HEX值轉換爲0-1縮放值。

// Color RGB ease of access 
#define UIColorFromRGB(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] 

因此將上述您.PCH那麼你可以使用後:

UIColor color = UIColorFromRGB(0x4C4C4C); 
mainTable.backgroundColor  = color; 
self.scrollView.backgroundColor = color; 
+0

現在* *很方便。 – 2012-03-15 22:09:42