在圆形视图上添加两个渐变

时间:2018-08-01 14:38:22

标签: ios swift

我正在尝试使用IBInspectible和IBdesinable创建如下图所示的渐变

enter image description here

我能够创建如下所示的渐变类(使用IBInspectible和IBdesinable)

@IBDesignable  class CommonHeaderView: UIView {

    @IBInspectable var startColor:   UIColor = .black { didSet { updateColors() }}
    @IBInspectable var endColor:     UIColor = .white { didSet { updateColors() }}

    override class var layerClass: AnyClass { return CAGradientLayer.self }

    var gradientLayer: CAGradientLayer { return layer as! CAGradientLayer }

    func updateColors() {
        gradientLayer.locations = [0.30,1.0]
        gradientLayer.colors    = [startColor.cgColor, endColor.cgColor]
    }

    override func layoutSubviews() {
        super.layoutSubviews()
        updateColors()
        //
        resetViewHeight()
    }

    override init(frame: CGRect) {
        super.init(frame: frame)
        resetViewHeight()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    //MARK:- Reset Height as per device size
    func resetViewHeight()
    {
        self.heightAnchor.constraint(equalTo: self.widthAnchor, multiplier: CGFloat(imageViewConstantHeight/320.0), constant: 0).isActive = true

    }
}

但是上面的代码仅在矩形视图上添加了两层。

我要创建一个如图所示的渐变视图。

请建议如何实现渐变,如图所示。我想使用IBInspectible,因为该通用类正在应用程序的大多数屏幕中以不同的颜色使用。

0 个答案:

没有答案