當我初始化 CGColor 并將其轉換為 UIColor 時,它不會以與使用相同值初始化的 UIColor 相同的方式呈現。如何在 CGColor 和 UIColor 之間轉換并保持相同的外觀?
這段代碼產生了兩種略有不同的顏色(見截圖),盡管我希望顏色是相同的:
self.view.backgroundColor = UIColor(red: 19/255.0, green: 25/255.0, blue: 28/255.0, alpha: 1.0)
let myCGColor = CGColor(red: 19/255.0, green: 25/255.0, blue: 28/255.0, alpha: 1.0)
self.secondView.backgroundColor = UIColor(cgColor: myCGColor)
頂部:UIColor / 底部:CGColor->UIColor

uj5u.com熱心網友回復:
那是因為 CGColor 初始化程式使用不同的顏色空間。UIColor 使用extendedSRGB,而CGColor 使用Generic RGB。
如果要獲得相同的顏色,則需要在初始化 CGColor 時指定相同的顏色空間:
let myCGColor = CGColor(colorSpace: .init(name: CGColorSpace.extendedSRGB)!, components: [19.0/255, 25.0/255, 28.0/255, 1.0])!
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/410733.html
標籤:
上一篇:SwiftUI:單例類不更新視圖
