mobile-ios/CovidSafe/UIElements/GradientButton.swift

43 lines
1.3 KiB
Swift
Raw Normal View History

2020-05-08 07:49:14 +00:00
//
// GradientButton.swift
// CovidSafe
//
// Copyright © 2020 Australian Government. All rights reserved.
//
import UIKit
@IBDesignable
class GradientButton: UIButton {
let gradientLayer = CAGradientLayer()
@IBInspectable
var topGradientColor: UIColor?
@IBInspectable
var bottomGradientColor: UIColor?
private func setGradient(topGradientColor: UIColor?, bottomGradientColor: UIColor?) {
if let topGradientColor = topGradientColor, let bottomGradientColor = bottomGradientColor {
gradientLayer.frame = bounds
gradientLayer.colors = [topGradientColor.cgColor, bottomGradientColor.cgColor]
gradientLayer.borderColor = layer.borderColor
gradientLayer.borderWidth = layer.borderWidth
gradientLayer.cornerRadius = layer.cornerRadius
gradientLayer.startPoint = CGPoint(x: 0, y: 0)
gradientLayer.endPoint = CGPoint(x: 1, y: 0)
gradientLayer.locations = [0.0, 1.0]
layer.insertSublayer(gradientLayer, at: 0)
} else {
gradientLayer.removeFromSuperlayer()
}
}
override func layoutSubviews() {
super.layoutSubviews()
setGradient(topGradientColor: topGradientColor, bottomGradientColor: bottomGradientColor)
}
}