Отрегулируйте альфа-канал UIColor

106

Я установил UIColorиспользование rgb в качестве фона UILabel. alphaЕдинственное пытаюсь настроить . Как я могу изменить альфа-канал существующего RGB UIColor?

редактировать

В основном у меня UILabelsесть набор UIColor(с использованием rgb), и я не знаю, какой он цвет UILabels. В какой-то момент мне придется сменить labelsальфа`. Как я могу просто изменить цвет меток альфа?

Эрик
источник
Предопределенного UIColor? Для метки вы можете использовать .alphaсвойство.
LinusGeffarth
Спасибо за ответ!. У меня есть предопределенный UIColor. Я не хочу устанавливать альфа меток, но альфа цвета
Эрик

Ответы:

187

colorWithAlphaComponent: сделали свое дело.

Итак, что мне нужно было сделать:

self.mylabel.backgroundColor = [self.myLabel.backgroundColor colorWithAlphaComponent:0.3];
Эрик
источник
есть ли разница между этим подходом и этим? UIColor(red:0.07, green:0.44, blue:0.54, alpha:0.4)
Changerrs
@Changerrs: могут быть случаи, когда нам нужно применить альфа-канал к существующему цвету. т.е. существующие цвета не могут быть изменены. Следовательно, для таких случаев у нас уже есть значение цвета, но затем к нему нужно применить альфа, поэтому colorWithAlphaComponent пригодится в таком случае.
Bishal Ghimire
83

Swift 3 и 4

yourUIView.backgroundColor = UIColor.white.withAlphaComponent(0.75)

Swift 2

yourUIView.backgroundColor = UIColor.whiteColor().colorWithAlphaComponent(0.75)
ГраСим
источник
13

Если у вас есть определенные цвета, вы также можете сделать это:

view.backgroundColor = [[MyClass someColor] colorWithAlphaComponent:0.25];
Крис Джи
источник
9

почему бы не использовать label.alpha = 0.5? настроить альфа вашего лейбла?

обновление: если вы хотите настроить альфа-канал из старого цвета, вот пример:

UIColor uicolor = [UIColor greenColor];
CGColorRef color = [uicolor CGColor];

int numComponents = CGColorGetNumberOfComponents(color);

UIColor newColor;
if (numComponents == 4)
{
    const CGFloat *components = CGColorGetComponents(color);
    CGFloat red = components[0];
    CGFloat green = components[1];
    CGFloat blue = components[2];
    newColor = [UIColor colorWithRed: red green: green blue: blue alpha: YOURNEWALPHA];

}
JZAU
источник
Я не хочу устанавливать альфа-канал меток, я хочу установить альфа-цвет меток
Эрик
В чем разница?
LinusGeffarth
Если я установлю альфа-канал для всей метки, тогда текст также станет светлее, потому что я устанавливаю цвет фона метки
Эрик
@Eric Вы имеете в виду изменить альфа-канал цвета с существующего UIColor?
JZAU
2

Пожалуйста, установите альфа в коде ниже -

[UIColor colorWithRed:200.0/255.0 green:191.0/255.0 blue:231.0 /255.0 alpha:1.0]
Santu C
источник
У меня есть этот код, но я хочу изменить только альфу
Эрик
вы хотите установить цвет фона UIlabel и хотите изменить альфа-канал UILabel, верно? Пожалуйста, используйте код выше
Santu C
[UIColor colorWithRed: 200.0 / 255 зеленый: 191.0 / 255 синий: 231.0 / 255 альфа: 1.0] модифицируйте так
Арун
Да Правильно, извините по ошибке
Santu C