CNLiveGradientView.swift 1.89 KB
//
//  CNLiveGradientView.swift
//  metaCode
//
//  Created by zx on 2023/11/27.
//

import Foundation

class CNLiveGradientView:UIView{
    
    /**
     颜色数组
     */
    var _colors:Array<UIColor> = []
    var colors:Array<UIColor>{
        get{
            _colors
        }
        set{
            _colors = newValue
            var gLayerColors = NSMutableArray()
            
            for (_,color) in _colors.enumerated() {
                gLayerColors.add(color.cgColor)
            }
            self.gradientLayer.colors = gLayerColors as? [Any]

        }
    }

    /**
     起点
     */
    var _startPoint:CGPoint?
    var startPoint:CGPoint?{
        get{
            _startPoint
        }
        set{
            _startPoint = newValue
            self.gradientLayer.startPoint = _startPoint!
        }
    }
    /**
     终点
     */
    var _endPoint:CGPoint?
    var endPoint:CGPoint?{
        get{
            _endPoint
        }
        set{
            _endPoint = newValue
            self.gradientLayer.endPoint = _endPoint!
        }
    }
    /**
     透明度
     */
    var _opacity:Float = 0
    var opacity:Float{
        get{
            _opacity
        }
        set{
            _opacity = newValue
            self.gradientLayer.opacity = _opacity
        }
    }
    // MARK: - CAGradientLayer
    lazy var gradientLayer :CAGradientLayer = {
        let gradientLayer = CAGradientLayer()
        self.layer.addSublayer(gradientLayer)
        return gradientLayer
    }()

    override init(frame: CGRect) {
        super.init(frame: frame)
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    // MARK: - layoutSubviews
    override func layoutSubviews() {
        super.layoutSubviews()
        self.gradientLayer.frame = CGRect(x: 0, y: 0, width: self.frame.size.width, height: self.frame.size.height)
    }
}