Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将CAGradientLayer应用于layer.borderColor_Ios_Swift - Fatal编程技术网

Ios 将CAGradientLayer应用于layer.borderColor

Ios 将CAGradientLayer应用于layer.borderColor,ios,swift,Ios,Swift,我试图用渐变实现带下划线的UITextField。因此,我创建了一个带有函数下划线()的扩展 为了获得渐变,我创建了一个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/

我试图用渐变实现带下划线的
UITextField
。因此,我创建了一个带有函数
下划线()
的扩展

为了获得渐变,我创建了一个
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
屏幕截图:

您的代码不起作用,因为
边框宽度
覆盖了整个渐变帧。请尝试设置
边框颜色
,然后您将看到差异

gradient.borderColor = UIColor.red.cgColor

如果您仍然面临任何问题,请告诉我。

从代码中删除以下行:

gradient.borderWidth = width
屏幕截图:

您的代码不起作用,因为
边框宽度
覆盖了整个渐变帧。请尝试设置
边框颜色
,然后您将看到差异

gradient.borderColor = UIColor.red.cgColor

如果您仍然面临任何问题,请告诉我。

非常感谢!我快要绝望了。非常感谢你!我快要绝望了。