在开发的时候,默认的UI有时候并不能满足我们的要求,我们可能需要一套具有主题的按钮,为了避免使用按钮的时候,每次都需要重写大量UI代码,我们就需要定义一套公共的按钮进行复用。
Swift自定义按钮其实很简单,只要继承UIButton,并重写其中的init方法就可以。
使用的时候直接创建对象,设置按钮文字即可。
按钮效果:
示例代码:
class MainButton: UIButton {
override init(frame: CGRect) {
super.init(frame: frame)
// gradientCode
let gradient1 = CAGradientLayer()
gradient1.colors = [UIColor(red: 0.45, green: 0.7, blue: 1, alpha: 1).cgColor, UIColor(red: 0.27, green: 0.46, blue: 1, alpha: 1).cgColor]
gradient1.locations = [0, 0.99]
gradient1.startPoint = CGPoint(x: 0.0, y: 0.0)
gradient1.endPoint = CGPoint(x: 0.0, y: 1.0)
gradient1.frame = CGRect(x: 0, y: 0, width: frame.size.width, height: frame.size.height)
layer.addSublayer(gradient1)
layer.cornerRadius = 5
clipsToBounds = true
setTitleColor(.white, for: .normal)
titleLabel?.font = UIFont.systemFont(ofSize: 15)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}