我正在尝试实现带有渐变的带下划线的 UITextField
。因此我创建了一个带有函数 underlined()
的扩展。
为了获得渐变效果,我创建了一个 CAGradientLayer
并进行了以下自定义:
func underlined(){
let color = UIColor(red: 11/255, green: 95/255, blue: 244/255, alpha: 1).cgColor
let sndColor = UIColor(red: 106/255, green: 178/255, blue: 255/255, alpha: 1).cgColor
let gradient: CAGradientLayer = CAGradientLayer()
gradient.colors = [color, sndColor]
gradient.locations = [0.0, 1.0]
gradient.startPoint = CGPoint(x: 0, y: 0)
gradient.endPoint = CGPoint(x: 1, y: 0)
let width = CGFloat(2.0)
gradient.frame = CGRect(x: 0, y: self.frame.size.height - width, width: self.frame.size.width, height: self.frame.size.height)
gradient.borderWidth = width
self.layer.insertSublayer(gradient, at: 0)
self.layer.masksToBounds = true
}
正在显示下划线,但它只是纯黑色 - 我尝试更改颜色,但它仍然是黑色(问题已过时 - 请参阅编辑)。
有人看到这个问题吗?
编辑:
添加 gradient.borderColor = UIColor.blue.cgColor
让我改变线条的颜色 - 但如何在边框颜色上应用渐变?
最佳答案
从您的代码中删除以下行:
gradient.borderWidth = width
截图:
您的代码无法正常工作,因为 borderWidth
覆盖了整个渐变框架。尝试设置 borderColor
,然后您会看到不同之处。
gradient.borderColor = UIColor.red.cgColor
如果您仍然遇到任何问题,请告诉我。
关于ios - 应用 CAGradientLayer 到 layer.borderColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56101285/