Make a UIButton programmatically in Swift

后端 未结 19 1864
死守一世寂寞
死守一世寂寞 2020-11-27 10:00

I am trying to build UI\'s programmatically. How do I get this action working? I am developing with Swift.

Code in viewDidLoad:

over         


        
19条回答
  •  甜味超标
    2020-11-27 10:43

    Swift 5.0

            let button = self.makeButton(title: "Login", titleColor: .blue, font: UIFont.init(name: "Arial", size: 18.0), background: .white, cornerRadius: 3.0, borderWidth: 2, borderColor: .black)
            view.addSubview(button)
            // Adding Constraints
            button.heightAnchor.constraint(equalToConstant: 40).isActive = true
            button.leftAnchor.constraint(equalTo: view.leftAnchor, constant: 40).isActive = true
            button.rightAnchor.constraint(equalTo: view.rightAnchor, constant: -40).isActive = true
            button.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -400).isActive = true
            button.addTarget(self, action: #selector(pressed(_ :)), for: .touchUpInside)
    
           // Define commmon method
            func makeButton(title: String? = nil,
                               titleColor: UIColor = .black,
                               font: UIFont? = nil,
                               background: UIColor = .clear,
                               cornerRadius: CGFloat = 0,
                               borderWidth: CGFloat = 0,
                               borderColor: UIColor = .clear) -> UIButton {
            let button = UIButton()
            button.translatesAutoresizingMaskIntoConstraints = false
            button.setTitle(title, for: .normal)
            button.backgroundColor = background
            button.setTitleColor(titleColor, for: .normal)
            button.titleLabel?.font = font
            button.layer.cornerRadius = 6.0
            button.layer.borderWidth = 2
            button.layer.borderColor = UIColor.red.cgColor
            return button
          }
            // Button Action
             @objc func pressed(_ sender: UIButton) {
                    print("Pressed")
              }
    

提交回复
热议问题