Sesuaikan alpha dari UIColor

106

Saya menetapkan UIColormenggunakan rgb ke latar belakang a UILabel. Saya mencoba untuk menyesuaikan alphasatu - satunya. Bagaimana cara mengubah alfa dari rgb yang sudah ada UIColor?

Edit

Pada dasarnya saya memiliki UILabelssatu set UIColor(menggunakan rgb), dan saya tidak akan tahu apa warnanya UILabels. Pada titik tertentu, saya harus mengubah labelsalpha`. Bagaimana saya bisa mengubah warna label alpha?

Eric
sumber
Dari yang telah ditentukan UIColor? Untuk label Anda bisa menggunakan .alphaproperti.
LinusGeffarth
Terima kasih atas tanggapannya !. Saya memiliki UIColor yang telah ditentukan. Saya tidak ingin menyetel label alfa, tetapi warna alfa
Eric

Jawaban:

187

colorWithAlphaComponent: berhasil.

Jadi yang harus saya lakukan adalah:

self.mylabel.backgroundColor = [self.myLabel.backgroundColor colorWithAlphaComponent:0.3];
Eric
sumber
apakah ada perbedaan antara pendekatan ini dan mengatakan ini? UIColor(red:0.07, green:0.44, blue:0.54, alpha:0.4)
Changerrs
@Changerrs: ada kalanya kita perlu menerapkan alfa ke warna yang ada. yaitu warna yang ada tidak dapat dimodifikasi. Karenanya untuk kasus seperti itu, kami sudah memiliki nilai warna, tetapi kemudian perlu menerapkan alfa padanya sehingga colorWithAlphaComponent berguna untuk kasus seperti itu.
Bishal Ghimire
83

Cepat 3 & 4

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

Cepat 2

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

Jika Anda memiliki warna khusus yang ditentukan, Anda dapat melakukannya juga:

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

kenapa tidak menggunakan label.alpha = 0.5? menyesuaikan alpha label Anda?

update: jika Anda ingin menyesuaikan alpha dari warna lama, berikut contohnya:

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
sumber
Saya tidak ingin menyetel label alfa, saya ingin menyetel label warna alfa
Eric
Dimana bedanya?
LinusGeffarth
Jika saya mengatur alpha dari seluruh label, maka teks juga akan menjadi lebih terang karena saya mengatur warna latar belakang label
Eric
@Eric Apakah maksud Anda mengubah warna alpha dari UIColor yang ada?
JZAU
2

Silakan atur alpha dalam kode di bawah ini -

[UIColor colorWithRed:200.0/255.0 green:191.0/255.0 blue:231.0 /255.0 alpha:1.0]
Santu C
sumber
Saya memiliki kode itu, tetapi saya hanya ingin mengubah alfa
Eric
Anda ingin mengatur warna latar belakang UIlabel dan ingin mengubah alfa UILabel kan? Silakan gunakan kode di atas
Santu C
[UIColor colorWithRed: 200.0 / 255 green: 191.0 / 255 blue: 231.0 / 255 alpha: 1.0] modifikasi seperti itu
Arun
Ya Benar, maaf karena kesalahan
Santu C