根据RGB值创建CGColor

问题描述 投票:0回答:2

我使用下面的代码设置视图控制器的背景

    view.wantsLayer = true
    let myColor = NSColor(calibratedRed: 50, green: 50, blue: 50, alpha: 1.0)
    view.layer?.backgroundColor = myColor.cgColor

但是在调试myColor时,我得到以下颜色而不是预期的颜色

enter image description here

swift macos cocoa swift3 nscolor
2个回答
1
投票

颜色分量的范围(RGBA)在[0,1]之间变化

init(red:green:blue:alpha:)

创建具有指定红色,绿色,蓝色和Alpha的颜色对象渠道价值。此方法接受扩展的颜色分量值。如果红色,绿色,蓝色或alpha值在0-1.0之外范围,

所以您可以获得init(red:green:blue:alpha:)

cgColor

1
投票

这里是view.layer?.backgroundColor = NSColor(calibratedRed: 50.0/256.0, green: 50.0/256.0, blue: 50.0/256.0, alpha: 1.0).cgColor 。任何大于1的值都被视为1。您需要将每个值除以255。

documentation

也请检查一下-> view.wantsLayer = true let myColor = NSColor(calibratedRed: 50/255, green: 50/255, blue: 50/255, alpha: 1.0) view.layer?.backgroundColor = myColor.cgColor

© www.soinside.com 2019 - 2024. All rights reserved.