Ajustar alfa de UIColor

106

UIColorDefini um usando rgb para um plano de fundo de a UILabel. Estou tentando ajustar o alphaúnico. Como posso modificar o alfa de um rgb existente UIColor?

Editar

Basicamente eu tenho UILabelsum conjunto UIColor(usando rgb), e não saberei de que cor eles UILabelssão. A certa altura, terei que trocar o labelsalfa ». Como posso apenas alterar a cor alfa dos rótulos?

Eric
fonte
De um pré-definido UIColor? Para um rótulo, você pode usar a .alphapropriedade.
LinusGeffarth
Obrigado pela resposta!. Eu tenho um UIColor predefinido. Não quero definir os rótulos alfa, mas as cores alfa
Eric

Respostas:

187

colorWithAlphaComponent: fez o truque.

Então o que eu tive que fazer foi:

self.mylabel.backgroundColor = [self.myLabel.backgroundColor colorWithAlphaComponent:0.3];
Eric
fonte
existe alguma diferença entre esta abordagem e dizer isso? UIColor(red:0.07, green:0.44, blue:0.54, alpha:0.4)
Changerrs
@Changerrs: pode haver casos em que precisamos aplicar alfa a uma cor existente. ou seja, as cores existentes não podem ser modificadas. Portanto, para esses casos, já temos um valor de cor, mas precisamos aplicar alfa a ele; portanto, colorWithAlphaComponent é útil para esse caso.
Bishal Ghimire
83

Swift 3 e 4

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

Swift 2

yourUIView.backgroundColor = UIColor.whiteColor().colorWithAlphaComponent(0.75)
GraSim
fonte
13

Se você tiver cores personalizadas definidas, também poderá fazer isso:

view.backgroundColor = [[MyClass someColor] colorWithAlphaComponent:0.25];
Chris g
fonte
9

porque não usar label.alpha = 0.5? ajustar o alfa do seu rótulo?

atualização: se você deseja ajustar o alfa de uma cor antiga, aqui está um exemplo:

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
fonte
Não quero definir os rótulos alfa, quero definir a cor dos rótulos como alfa
Eric
Onde está a diferença?
LinusGeffarth
Se eu definir o alfa de todo o rótulo, o texto também ficará mais claro porque estou definindo a cor de fundo do rótulo
Eric
@Eric Você quer dizer mudar o alfa da cor de um UIColor existente?
JZAU de
2

Defina o alfa no código abaixo -

[UIColor colorWithRed:200.0/255.0 green:191.0/255.0 blue:231.0 /255.0 alpha:1.0]
Santu C
fonte
Eu tenho esse código, mas quero modificar apenas o alfa
Eric
você deseja definir a cor de fundo do UIlabel e deseja alterar o alfa do UILabel certo? Use o código acima
Santu C
[UIColor colorWithRed: 200.0 / 255 green: 191.0 / 255 blue: 231.0 / 255 alpha: 1.0] modifique assim
Arun
Sim, certo, desculpe por engano
Santu C