在開(kāi)發(fā)的時(shí)候,默認(rèn)的UI有時(shí)候并不能滿足我們的要求,我們可能需要一套具有主題的按鈕,為了避免使用按鈕的時(shí)候,每次都需要重寫(xiě)大量UI代碼,我們就需要定義一套公共的按鈕進(jìn)行復(fù)用屉来。
Swift自定義按鈕其實(shí)很簡(jiǎn)單,只要繼承UIButton,并重寫(xiě)其中的init方法就可以供搀。
使用的時(shí)候直接創(chuàng)建對(duì)象,設(shè)置按鈕文字即可。
按鈕效果:
示例代碼:
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")
}
}