Ajuster l'alpha d'UIColor

106

J'ai mis une UIColorutilisation de RVB sur un arrière-plan de UILabel. J'essaye d'ajuster le alphaseul. Comment puis-je modifier l'alpha d'un RVB existant UIColor?

Éditer

En gros, j'ai UILabelsun ensemble UIColor(en utilisant RVB), et je ne saurai pas de quelle couleur ils UILabelssont. À un certain moment, je labelsdevrai changer l' alpha`. Comment puis-je simplement changer la couleur alpha des étiquettes?

Eric
la source
D'un prédéfini UIColor? Pour une étiquette, vous pouvez utiliser la .alphapropriété.
LinusGeffarth
Merci pour la réponse!. J'ai un UIColor prédéfini. Je ne veux pas définir les étiquettes alpha, mais les couleurs alpha
Eric

Réponses:

187

colorWithAlphaComponent: a fait l'affaire.

Donc ce que je devais faire était:

self.mylabel.backgroundColor = [self.myLabel.backgroundColor colorWithAlphaComponent:0.3];
Eric
la source
y a-t-il une différence entre cette approche et dire ceci? UIColor(red:0.07, green:0.44, blue:0.54, alpha:0.4)
Changerrs
@Changerrs: il peut y avoir des cas où nous devons appliquer alpha à une couleur existante. c'est-à-dire que les couleurs existantes ne peuvent pas être modifiées. Par conséquent, pour de tels cas, nous avons déjà une valeur de couleur, mais nous devons ensuite lui appliquer alpha, d'où colorWithAlphaComponent est pratique dans ce cas.
Bishal Ghimire
83

Swift 3 et 4

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

Swift 2

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

Si vous avez défini des couleurs personnalisées, vous pouvez également le faire:

view.backgroundColor = [[MyClass someColor] colorWithAlphaComponent:0.25];
chris g
la source
9

pourquoi ne pas utiliser label.alpha = 0.5? ajuster l'alpha de votre étiquette?

mise à jour: si vous souhaitez ajuster l'alpha à partir d'une ancienne couleur, voici un exemple:

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
la source
Je ne veux pas définir les étiquettes alpha, je veux définir la couleur alpha des étiquettes
Eric
Où est la différence?
LinusGeffarth
Si je règle l'alpha de l'étiquette entière, le texte deviendra également plus clair car je règle la couleur d'arrière-plan de l'étiquette
Eric
@Eric Voulez-vous dire changer l'alpha de la couleur d'un UIColor existant?
JZAU
2

Veuillez définir alpha dans le code ci-dessous -

[UIColor colorWithRed:200.0/255.0 green:191.0/255.0 blue:231.0 /255.0 alpha:1.0]
Santu C
la source
J'ai ce code, mais je veux modifier l'alpha uniquement
Eric
vous voulez définir la couleur d'arrière-plan de UIlabel et voulez changer l'alpha de UILabel non? Veuillez utiliser le code ci-dessus
Santu C
[UIColor colorWithRed: 200,0 / 255 vert: 191,0 / 255 bleu: 231,0 / 255 alpha: 1,0] modifier comme ça
Arun
Oui, désolé par erreur
Santu C