按钮边框颜色不会更改为自定义颜色
Button border color will not change to custom color
我有一个非常简单的透明按钮子类,我试图将边框更改为与文本相同的颜色,但结果却是白色。
class transparentButton: UIButton {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setupButton()
}
// Setup the button
func setupButton() {
self.backgroundColor = .clear
self.layer.borderWidth = 3
self.layer.borderColor = CGColor(red: 203, green: 72, blue: 75, alpha: 0.75)
}
}
CGColor
init 接受从 0 到 1 的值,正如 documentation 所说:
与您可能习惯的超出 255 不同,最大值为 1。如果您提供的值超过 1,我假设它只是上限为 1,这意味着:
CGColor(red: 203, green: 72, blue: 75, alpha: 0.75)
变成...
CGColor(red: 1, green: 1, blue: 1, alpha: 0.75)
...白色。
因此,您必须将所有内容除以 255。
func setupButton() {
self.backgroundColor = .clear
self.layer.borderWidth = 3
self.layer.borderColor = CGColor(red: 203 / 255, green: 72 / 255, blue: 75 / 255, alpha: 0.75)
}
Before
After
我有一个非常简单的透明按钮子类,我试图将边框更改为与文本相同的颜色,但结果却是白色。
class transparentButton: UIButton {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setupButton()
}
// Setup the button
func setupButton() {
self.backgroundColor = .clear
self.layer.borderWidth = 3
self.layer.borderColor = CGColor(red: 203, green: 72, blue: 75, alpha: 0.75)
}
}
CGColor
init 接受从 0 到 1 的值,正如 documentation 所说:
与您可能习惯的超出 255 不同,最大值为 1。如果您提供的值超过 1,我假设它只是上限为 1,这意味着:
CGColor(red: 203, green: 72, blue: 75, alpha: 0.75)
变成...
CGColor(red: 1, green: 1, blue: 1, alpha: 0.75)
...白色。
因此,您必须将所有内容除以 255。
func setupButton() {
self.backgroundColor = .clear
self.layer.borderWidth = 3
self.layer.borderColor = CGColor(red: 203 / 255, green: 72 / 255, blue: 75 / 255, alpha: 0.75)
}
Before | After |
---|---|