2012-10-12 66 views
1

我一直在使用十六進制計算器將十六進制值轉換爲RGB值(#666 = 102/102/102等等)。將顏色從colorWithRGBA轉換爲colorWithWhite

看來我不能用UIColor和[UIColor colorWithRed:102 green:102 blue:102 alpha: 1.0]似乎只能返回白色(也嘗試過60)。如果我使用[UIColor colorWithWhite:0.6 alpha:1.0],我會得到一個深色 - 那麼如何將102/102/102這樣的值轉換爲colorWithWhite值?

我試過的一種方法是取這個值併除以255,所以102/255 = 0.4所以我把我的colorWithWhite的值設置爲0.4。這是否準確?

+1

'[UIColor colorWithRed:102 green:102 blue:102 alpha:1.0]'將不起作用,因爲每種顏色必須從0.0到0.1,並且超出範圍102。你想爲每種顏色102/255.0。有關更多詳細信息,另請參閱[此答案](http://stackoverflow.com/a/5506134/1693173)和[this one](http://stackoverflow.com/a/3010540/1693173)。 – progrmr

回答

1

+ (UIColor *)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha

參數: 紅色 - 顏色對象的紅色分量,指定爲從0.0到1.0的值。

green - 顏色對象的綠色成分,指定爲0.0到1.0的值。

blue - 顏色對象的藍色分量,指定爲0.0到1.0的值。

alpha - 顏色對象的不透明度值,指定爲從0.0到1.0的值。

所以你的RGB值轉換爲0.0和1.0之間,執行#/ 255

編輯:在回答您的編輯,是的,它是正確的。但是請記住,如果你用代碼完成這個操作,那麼你正在進行整數除法,你將得到0.使255爲浮點變量或使用常量255.f