I am creating a custom button and the code for this is below. All the styling elements are working, however my the name and image subviews are not being added. I am sure this is a simple error, but I would appreciate it if someone could help me. Thank you.
class MaterialButton: UIButton {
    let name = UILabel()
    let image = UIImageView()
    override init(frame: CGRect) {
        super.init(frame: frame)
        setupButton()
    }
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
        super.init(coder: aDecoder)
        setupButton()
    }
    func setupButton() {
        name.textColor = .white
        //        name.font = UIFont(name: "HelveticaNeue-UltraLight",size: 10.0)
        name.textAlignment = .center
        self.layer.cornerRadius = 20
        addSubview(name)
        positionName()
        addSubview(image)
        positionImage()
    }
    func positionName() {
        name.translatesAutoresizingMaskIntoConstraints = false
        name.bottomAnchor.constraint(equalTo: self.bottomAnchor, constant: 10).isActive = true
        name.rightAnchor.constraint(equalTo: self.rightAnchor, constant: -10).isActive = true
        name.leftAnchor.constraint(equalTo: self.leftAnchor, constant: 10).isActive = true
        name.heightAnchor.constraint(equalToConstant: self.bounds.height - image.bounds.height - 20).isActive = true
    }
    func positionImage() {
        image.translatesAutoresizingMaskIntoConstraints = false
        image.heightAnchor.constraint(equalToConstant: image.bounds.width).isActive = true
        image.rightAnchor.constraint(equalTo: self.rightAnchor, constant: -10).isActive = true
        image.leftAnchor.constraint(equalTo: self.leftAnchor, constant: 10).isActive = true
        image.topAnchor.constraint(equalTo: self.topAnchor, constant: 10).isActive = true
    }
}
Example of how button is implemented (other button was declared initialized with Material Button earlier in the code)
func setupOtherButton() { // Setting up plastic button
        otherButton.name.text = "Other"
        otherButton.name.textColor = .white
        otherButton.backgroundColor = .gray
        miniSV1.addSubview(otherButton) // Add plastic button to view
        otherButton.addTarget(self, action: #selector(otherButtonTapped), for: .touchUpInside)
    }
 
    
