★ UIButtonの背景にグラデーションを掛ける
class GradientButton: UIButton {
var startColor: UIColor = UIColor.yellowColor()
var endColor : UIColor = UIColor.orangeColor()
init(frame: CGRect, startColor: UIColor, endColor: UIColor) {
super.init(frame: frame)
self.startColor = startColor
self.endColor = endColor
createGradient()
setCornerRadius()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
func createGradient() {
let gradientColors: [CGColor] = [startColor.CGColor, endColor.CGColor]
let gradientLayer: CAGradientLayer = CAGradientLayer()
gradientLayer.colors = gradientColors
gradientLayer.frame = bounds
layer.insertSublayer(gradientLayer, atIndex: 0)
}
func setCornerRadius() {
layer.masksToBounds = true
layer.cornerRadius = 10
layer.borderColor = UIColor.redColor().CGColor
layer.borderWidth = 1
}
}
// Usage
let button = GradientButton(frame: CGRectMake(100, 100, 200, 50), startColor: UIColor.yellowColor(), endColor: UIColor.orangeColor())
button.setTitle("Title", forState: .Normal)
button.addTarget(self, action: #selector(ViewController.push), forControlEvents: .TouchUpInside)
view.addSubview(button)