我正在尝试使用IBInspectible和IBdesinable创建如下图所示的渐变
我能够创建如下所示的渐变类(使用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,因为该通用类正在应用程序的大多数屏幕中以不同的颜色使用。