UIColor'un alfa değerini ayarlayın


106

Bir UIColorrgb kullanarak bir UILabel. alphaTek ayarlamaya çalışıyorum . Mevcut bir rgb'nin alfa değerini nasıl değiştirebilirim UIColor?

Düzenle

Temelde UILabelsbir setim var UIColor(rgb kullanarak) ve hangi rengin olduğunu bilmeyeceğim UILabels. Belli bir noktada, labelsalfayı değiştirmem gerekecek. Etiket rengini alfa nasıl değiştirebilirim?


Önceden tanımlanmış bir UIColormi? Bir etiket için .alphaözelliği kullanabilirsiniz .
LinusGeffarth

Cevabınız için teşekkürler !. Önceden tanımlanmış bir UIColor'a sahibim. Etiketleri alfa ayarlamak istemiyorum, ancak renkler alfa
Eric

Yanıtlar:


187

colorWithAlphaComponent: hile yaptı.

Yani yapmam gereken şey şuydu:

self.mylabel.backgroundColor = [self.myLabel.backgroundColor colorWithAlphaComponent:0.3];

bu yaklaşımla şunu söylemek arasında bir fark var mı? UIColor(red:0.07, green:0.44, blue:0.54, alpha:0.4)
Değişiklikler

@Changerrs: Mevcut bir renge alfa uygulamamız gereken durumlar olabilir. yani mevcut renkler değiştirilemez. Bu nedenle, bu gibi durumlarda zaten bir renk değerimiz var, ancak daha sonra buna alfa uygulamamız gerekiyor, bu nedenle colorWithAlphaComponent bu durumda kullanışlı oluyor.
Bishal Ghimire

83

Hızlı 3 ve 4

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

Swift 2

yourUIView.backgroundColor = UIColor.whiteColor().colorWithAlphaComponent(0.75)

13

Tanımlanmış özel renkleriniz varsa, bunu da yapabilirsiniz:

view.backgroundColor = [[MyClass someColor] colorWithAlphaComponent:0.25];

9

neden kullanmıyorsun label.alpha = 0.5? etiketinizin alfa değerini ayarlamak için?

güncelleme: alfa'yı eski bir renkten ayarlamak istiyorsanız, işte bir örnek:

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];

}

Etiketleri alfa olarak ayarlamak istemiyorum, etiketleri renk alfa olarak ayarlamak istiyorum
Eric

Fark nerede?
LinusGeffarth

Tüm etiketin alfa değerini ayarlarsam, etiketin arka plan rengini ayarladığım için metin de daha açık hale gelecektir
Eric

@Eric Mevcut bir UIColor'dan rengin alfasını değiştirmeyi mi kastediyorsunuz?
JZAU

2

Lütfen alfa kodunu aşağıdaki kodda ayarlayın -

[UIColor colorWithRed:200.0/255.0 green:191.0/255.0 blue:231.0 /255.0 alpha:1.0]

Bu koda sahibim, ancak yalnızca alfayı değiştirmek istiyorum
Eric

UIlabel'in arka plan rengini ayarlamak ve UILabel'in alfa değerini değiştirmek istiyorsunuz değil mi? Lütfen yukarıdaki kodu kullanın
Santu C

[UIColor colorWithRed: 200.0 / 255 yeşil: 191.0 / 255 mavi: 231.0 / 255 alpha: 1.0] böyle değiştir
Arun

Evet Doğru, yanlışlıkla özür dilerim
Santu C
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.