【问题标题】:Gradient color effect on UIView in iOS 10 Swift 2.3 Xcode 8iOS 10 Swift 2.3 Xcode 8 中 UIView 的渐变颜色效果
【发布时间】:2016-09-29 04:41:46
【问题描述】:

我正在尝试在UIView 或按钮上实现渐变色,两种颜色的黑色淡出以清除颜色或白色(请参见图片)。

我尝试过使用白色、透明色的不同组合;也尝试使用 alpha。我还设置了locations 属性,如下面的代码所示,但我无法达到预期的效果。

谁能告诉我哪里错了。 :)

       let colorClear = UIColor.clearColor().CGColor
    let colorLeft =  UIColor(red: 255.0/255.0, green: 255.0/255.0, blue: 255.0/255.0, alpha: 0.9).CGColor
    let colorRight = UIColor(red: 0.0/255.0, green: 0.0/255.0, blue: 0.0/255.0, alpha: 1.0).CGColor

    let gradientLayer = CAGradientLayer()
    gradientLayer.colors = [colorLeft, colorRight]
    gradientLayer.locations = [ 0.1, 0.9]
    gradientLayer.frame = self.createAccountView.bounds
    gradientLayer.startPoint = CGPoint(x:0.0, y:0.5)
    gradientLayer.endPoint = CGPoint(x:1.0, y:0.5)
    createAccountView.layer.addSublayer(gradientLayer)
    createAccountView.layer.masksToBounds = true

所需的结果是黑色过渡到褪色的结果。

我已经尝试将两种颜色都设置为黑色和带有 alpha 的 color1。 我已经尝试评论locations 属性。

【问题讨论】:

    标签: ios10 xcode8 linear-gradients swift2.3


    【解决方案1】:

    你应该在 viewDidLayoutSubviews() 中设置 gradientLayer.frame。

    像这样:

    class ViewController: UIViewController {
    
        let gradientLayer = CAGradientLayer()
    
        override func viewDidLoad() {
        let colorClear = UIColor.clearColor().CGColor
    let colorLeft =  UIColor(red: 255.0/255.0, green: 255.0/255.0, blue: 255.0/255.0, alpha: 0.9).CGColor
    let colorRight = UIColor(red: 0.0/255.0, green: 0.0/255.0, blue: 0.0/255.0, alpha: 1.0).CGColor
    
        self.gradientLayer.colors = [colorLeft, colorRight]
        self.gradientLayer.locations = [ 0.1, 0.9]
        self.gradientLayer.startPoint = CGPoint(x:0.0, y:0.5)
        self.gradientLayer.endPoint = CGPoint(x:1.0, y:0.5)
        createAccountView.layer.addSublayer(self.gradientLayer)
        createAccountView.layer.masksToBounds = true
    }
    
    override viewDidLayoutSubviews() {
        super.viewDidLayoutSubViews()
        self.gradientLayer.frame = self.createAccountView.bounds
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多