我正在制作一个天气应用程序并显示当天的最高和最低温度,我使用了UIView的角落我已经使用.layer.cornerRadius进行了舍入。现在我想添加一个具有不同颜色(表示温度)的渐变图层,但渐变层并不会出现。这是我的viewDidLoad(),视图名称是currentMinMaxTemperatureView:
let gradientLayer = CAGradientLayer()
gradientLayer.frame = currentMinMaxTemperatureView.bounds
gradientLayer.cornerRadius = currentMinMaxTemperatureView.cornerRadius
gradientLayer.colors = [UIColor.blue, UIColor.yellow, UIColor.red]
currentMinMaxTemperatureView.layer.addSublayer(gradientLayer)
为什么不出现?运行时,我的视图如下所示:
答案 0 :(得分:1)
尝试以下
gradientLayer.colors = [UIColor.blue.cgColour, UIColor.yellow.cgColour, UIColor.red.cgColour]
答案 1 :(得分:1)
您的代码有两个问题:
首先,如@archLucifer所述,CAGradientLayer
期望CGColor
,而不是UIColor
。
像这样简单地转换颜色:
[UIColor.blue.cgColor, UIColor.yellow.cgColor, UIColor.red.cgColor]
第二,您要确保在将currentMinMaxTemperatureView
添加到超级视图后添加。否则,其bounds
将是nil
。
稍后在UIViewController
生命周期中尝试添加渐变,例如ViewDidLayoutSubviews()