То же самое решение, что и у @Anton Chikin, но чуть более надежное. Обратите внимание на переопределение layerClass
... таким образом, вам не нужно беспокоиться о настройке рамки, и рамка автоматически обновляется при повороте и изменении размера.
class GradientView: UIView {
var colorA : UIColor = UIColor.greenColor() {
didSet { updateGradient() }
}
var colorB : UIColor = UIColor.blueColor() {
didSet { updateGradient() }
}
override class func layerClass() -> AnyClass {
return CAGradientLayer.self
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
updateGradient()
}
func updateGradient() {
if let gLayer = layer as? CAGradientLayer {
gLayer.colors = [colorA.CGColor, colorB.CGColor]
}
}
}
Если вы используете IB, вы можете установить свойства через «Определенные пользователем атрибуты времени выполнения».
Если вы не используете IB, используйте другой инициализатор.