2012-03-15 2 views
1

Я пытаюсь применить пользовательский RGB цвет фона, но он не показывает предполагаемую цвет, вместо этого он всегда показывает белый:цвет фона не работает, как ожидалось

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

однако если изменить один из параметров например, красный: 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 только для альфы. Большое спасибо, что спас меня от траты много часов :) – bneupaane

+0

И не забудьте .0 (или f суффикс). В противном случае ваша операция будет вычисляться целыми числами. И здесь возможны только 0 и 1. Это заставило меня сходить с ума на днях :) –

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. Мы включили весь наш код, чтобы использовать макрос для преобразования значений 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

Теперь * это * удобно. –

Смежные вопросы