2015-11-13 3 views
0
[btn setBackgroundColor:[UIColor colorWithRed:199/255 green:57/255 blue:46/255 alpha:1]]; 

Я попробовал этот код, чтобы установить цвет фона кнопки, но он показывает серый цвет, присвоенный цвет что-то ещеКнопка цвет фона не отображается должным образом

+1

просто добавьте '' .0' после 255' –

+0

при изменении этой целью didload или еще в любом случае –

ответ

3

У вас есть чтобы изменить арифметику:

[btn setBackgroundColor:[UIColor colorWithRed:199.0/255.0 green:57.0/255.0 blue:46.0/255.0 alpha:1.0]]; 

Что делает ваш код, это выполнить целочисленное деление 199/255, что приводит к чему-то вроде 0.78 с плавающей запятой, но поскольку вы не указали, что это арифметическая операция с плавающей запятой, программа рассматривает ее как целочисленное деление и опускает цифры после десятичной точки, что приводит к 0. Те же противники для других 2 цветных компонентов.

Чтобы убедиться, что операция рассматривается как с плавающей запятой, вы должны написать 199.0 вместо 199, потому что это говорит компилятору, что вы заботитесь о цифрах после десятичной точки.

Строго говоря, достаточно было бы написать либо divident, либо divisor с .0. И 199/255.0, и 199.0/255 приведут к правильному результату.

1

Попробуйте

[btn setBackgroundColor:[UIColor colorWithRed:199.0/255.0 green:57.0/255.0 blue:46.0/255.0 alpha:1]]; 
+0

Полезно, спасибо – vijeesh

+0

любой причине, что вы изменили принятый ответ? –

+0

оба ответа верны. Я не могу принять оба ответа, – vijeesh

1

вы можете попробовать это решение ..

[self.CompBtn setBackgroundImage:[UIImage imageWithColor:[UIColor colorWithRed:118.0/255.0 green:183.0/255.0 blue:59.0/255.0 alpha:1]] forState:UIControlStateNormal]; 

я думаю, что это один помогает ...

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