ปรับอัลฟาของ UIColor


106

ฉันตั้งค่าUIColorโดยใช้ rgb เป็นพื้นหลังของไฟล์UILabel. ฉันกำลังพยายามปรับสิ่งalphaเดียว ฉันจะแก้ไขอัลฟาของ rgb ที่มีอยู่ได้UIColorอย่างไร?

แก้ไข

โดยทั่วไปฉันมีUILabelsชุดนั้นUIColor(ใช้ rgb) และฉันไม่รู้ว่าสีUILabelsคืออะไร เมื่อถึงจุดหนึ่งฉันจะต้องเปลี่ยนlabelsอัลฟ่า " ฉันจะเปลี่ยนสีป้ายกำกับอัลฟาได้อย่างไร?


ที่กำหนดไว้ล่วงหน้าUIColor? สำหรับป้ายกำกับคุณสามารถใช้.alphaคุณสมบัติ
LinusGeffarth

ขอบคุณสำหรับการตอบกลับ!. ฉันมี UIColor ที่กำหนดไว้ล่วงหน้า ฉันไม่ต้องการตั้งค่าป้ายกำกับอัลฟ่า แต่เป็นสี alpha
Eric

คำตอบ:


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: อาจมีบางกรณีที่เราจำเป็นต้องใช้อัลฟากับสีที่มีอยู่ เช่นสีที่มีอยู่ไม่สามารถแก้ไขได้ ดังนั้นในกรณีเช่นนี้เรามีค่าสีอยู่แล้ว แต่จำเป็นต้องใช้อัลฟ่ากับมันด้วยเหตุนี้ colorWithAlphaComponent จึงมีประโยชน์สำหรับกรณีดังกล่าว
Bishal Ghimire

83

Swift 3 และ 4

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

สวิฟต์ 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];

}

ฉันไม่ต้องการตั้งค่าป้ายกำกับอัลฟ่าฉันต้องการตั้งค่าสีป้ายกำกับ
Eric

แตกต่างตรงไหน?
LinusGeffarth

ถ้าฉันตั้งค่าอัลฟาของป้ายกำกับทั้งหมดข้อความก็จะเบาลงด้วยเพราะฉันกำลังตั้งค่าสีพื้นหลังของป้ายกำกับ
Eric

@Eric คุณหมายถึงการเปลี่ยนสีของอัลฟ่าจาก UIColor ที่มีอยู่หรือไม่?
JZAU

2

กรุณาตั้งค่าอัลฟาในโค้ดด้านล่าง -

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

ฉันมีรหัสนั้น แต่ฉันต้องการแก้ไขอัลฟ่าเท่านั้น
Eric

คุณต้องการกำหนดสีพื้นหลังของ UIlabel และต้องการเปลี่ยนอัลฟาของ UILabel ใช่ไหม กรุณาใช้รหัสด้านบน
Santu C

[UIColor colorWithRed: 200.0 / 255 สีเขียว: 191.0 / 255 สีน้ำเงิน: 231.0 / 255 alpha: 1.0] แก้ไขเช่นนั้น
อรุณ

ใช่ถูกต้องขออภัยโดยไม่ได้ตั้งใจ
Santu C
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.