gpt4 book ai didi

ios - UIButton颜色在iphone 8 plus和iphone X中有渐变(iOS版本独立问题)

转载 作者:行者123 更新时间:2023-11-28 15:05:14 24 4
gpt4 key购买 nike

我在我的用例中使用了简单的 UIButton:3 种不同的状态背景颜色 - 正常、突出显示和禁用。我通过以下代码实现了这一点:

@IBOutlet var myButton: UIButton!{
didSet{
myButton.setBackgroundImage(UIImage.imageWithColor(color: #colorLiteral(red: 0, green: 0.3803921569, blue: 0.6196078431, alpha: 1)), for: .normal)
myButton.setBackgroundImage(UIImage.imageWithColor(color: #colorLiteral(red: 0, green: 0.4745098039, blue: 0.7725490196, alpha: 1)), for: .highlighted)
myButton.setBackgroundImage(UIImage.imageWithColor(color: .gray), for: .disabled)
}
}

UIImage 的扩展函数---

class func imageWithColor(color: UIColor) -> UIImage {
let rect = CGRect(x: 0.0, y: 0.0, width: 1.0, height: 0.5)
UIGraphicsBeginImageContextWithOptions(rect.size, false, 0.0)
color.setFill()
UIRectFill(rect)
let image : UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return image
}

但是我的按钮在iphone8和iphone X中出现如下

enter image description here

不是灰色,而是灰色和蓝色的渐变

最佳答案

最近,我也遇到了这个问题,使用完全相同的代码。解决方案非常简单:在您的扩展中,将 CGRect 高度值更改为 1.0 而不是 0.5。现在,一切都将在每台设备上正确呈现。奇怪的问题,也许有人有想法,为什么会这样?

您更新的扩展代码:

class func imageWithColor(color: UIColor) -> UIImage {
let rect = CGRect(x: 0.0, y: 0.0, width: 1.0, height: 1.0)
UIGraphicsBeginImageContextWithOptions(rect.size, false, 0.0)
color.setFill()
UIRectFill(rect)
let image : UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return image
}

关于ios - UIButton颜色在iphone 8 plus和iphone X中有渐变(iOS版本独立问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48557036/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com