【问题标题】:How to remove gradient layer in swift如何快速删除渐变层
【发布时间】:2017-12-26 10:29:36
【问题描述】:
Code:

    extension CAGradientLayer
    {
        func changeStatusBarColor() -> CAGradientLayer
        {
            var height = 20
            let Size = UIScreen.main.bounds

            let darkViolet = UIColor(hexString: "#44377D")
            let lightViolet = UIColor(hexString: "##686CCD")

            let gradientLayer = CAGradientLayer()
            gradientLayer.frame = CGRect(x: 0, y: 0, width:Int(Size.width), height: height)
            gradientLayer.colors =  [darkViolet,lightViolet ].map{$0.cgColor}
            gradientLayer.startPoint = CGPoint(x: 0.0, y: 0.5)
            gradientLayer.endPoint = CGPoint(x: 1.0, y: 0.5)
            return gradientLayer
        }
    }

     let gradientLayer = CAGradientLayer()
            gradientLayer.name = "masklayer"
            self.view.layer.addSublayer(gradientLayer.changeStatusBarColor())

            for layer in self.view.layer.sublayers! {
                print("layer name:", layer.name)
                if layer.name == "masklayer" {
                    layer.removeFromSuperlayer()
                }
            }

我为状态栏应用了渐变色。当我尝试使用上面的代码删除子层时,它不会删除子层。我的代码有什么问题。任何帮助都会得到重视。提前致谢

【问题讨论】:

    标签: swift3 cagradientlayer


    【解决方案1】:
    extension CAGradientLayer
    {
        func changeStatusBarColor() -> CAGradientLayer
        {
            var height = 20
            let Size = UIScreen.main.bounds
    
            let darkViolet = UIColor(hexString: "#44377D")
            let lightViolet = UIColor(hexString: "##686CCD")
    
            let gradientLayer = CAGradientLayer()
            gradientLayer.frame = CGRect(x: 0, y: 0, width:Int(Size.width), height: height)
            gradientLayer.colors =  [darkViolet,lightViolet ].map{$0.cgColor}
            gradientLayer.startPoint = CGPoint(x: 0.0, y: 0.5)
            gradientLayer.endPoint = CGPoint(x: 1.0, y: 0.5)
    
            gradientLayer.name = self.name
    
            return gradientLayer
        }
    }
    

    在您的 changeStatusBarColor() 函数中添加 gradientLayer.name = self.name

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-23
      • 2014-04-16
      • 1970-01-01
      • 1970-01-01
      • 2017-09-13
      相关资源
      最近更新 更多