不同于模拟器的操场中的渐变

问题描述:

我尝试使用操场制作渐变,然后将其变为uiview的子类以在我的代码库中使用它。不同于模拟器的操场中的渐变

操场代码是这样的:

let view = UIView(frame: CGRect(x: 0, y: 0, width: 640, height: 41 
    )) 

let gradient: CAGradientLayer = CAGradientLayer(layer: view.layer) 
gradient.frame = view.frame 

let lightColor = UIColor(red: 157/256, green: 157/256, blue: 154/256, alpha: 1) 
let darkColor = UIColor(red: 108/256, green: 104/256, blue: 104/256, alpha: 1) 

gradient.colors = [lightColor.CGColor, darkColor.CGColor] 
gradient.locations = [0.6 , 0.4] 
gradient.startPoint = CGPoint(x: 1, y: 0.55) 
gradient.endPoint = CGPoint(x: 0, y: 0.45) 
view.layer.insertSublayer(gradient, atIndex: 0) 
view //displayed 

,并显示如下:

我试图把它做成我的基本代码:

class GradiantView : UIView { 
    override var frame: CGRect { 
     didSet { 
      let gradient: CAGradientLayer = CAGradientLayer(layer: layer) 
      gradient.frame = bounds 

      let lightColor = UIColor(red: 157/256, green: 157/256, blue: 154/256, alpha: 1) 
      let darkColor = UIColor(red: 108/256, green: 104/256, blue: 104/256, alpha: 1) 

      gradient.colors = [lightColor.CGColor, darkColor.CGColor] 
      gradient.locations = [0.6 , 0.4] 
      gradient.startPoint = CGPoint(x: 1, y: 0.55) 
      gradient.endPoint = CGPoint(x: 0, y: 0.45) 
      layer.insertSublayer(gradient, atIndex: 0) 
     } 
    } 
} 

然而,结果是这样的:(没有应用灰度)

发生了什么,以及如何解决它?

我倒过来的位置,它似乎工作。 我欢迎任何解释模拟器和操场之间的区别。

 gradientLayer.locations = [0.4 , 0.6]