首页 > 解决方案 > 自定义 UIButton 子类

问题描述

我正在尝试我自己的自定义 UIButton。我继承了 UIButton 类并尝试添加一些功能,这是我的代码:

import UIKit


class CustomButton: UIButton {

    override init(frame: CGRect) {
        super.init(frame: frame)
        setup()
        setGradientBackground()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        fatalError("init(coder:) has not been implemented")
    }

    private func setup() {
        layer.cornerRadius = 8
    }

    private func setGradientBackground() {

        let gradientLayer = CAGradientLayer()
        gradientLayer.frame = bounds
        gradientLayer.colors = [UIColor.yellow.cgColor, UIColor.blue.cgColor]
        gradientLayer.locations = [0.0, 1.0]
        gradientLayer.startPoint = CGPoint(x: 1.0, y: 1.0)
        gradientLayer.endPoint = CGPoint(x: 0.0, y: 0.0)

        layer.insertSublayer(gradientLayer, at: 0)
    }
}

我将它链接到我的 IBOutlet :

@IBOutlet weak var myButton: CustomButton!

什么都适用!

标签: iosswiftuibutton

解决方案


如果您在情节提要中添加按钮,则调用的初始化程序是init?(coder aDecoder: NSCoder),而不是init(frame: CGRect),因此您需要添加...</p>

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    setup()
    setGradientBackground()
}

推荐阅读