Swift 如何以编程方式创建一个按钮

Swift 如何以编程方式创建一个按钮

在这篇文章中,你将了解到如何在Swift语言中以编程方式创建一个按钮。在iOS中以编程方式创建一个按钮对象有不同的方法。让我们通过一个例子来探索其中的一些方法。

我们将看到以下几种创建按钮的方法

第1步 – 在这一步,我们将创建一个按钮对象,并在以后需要时对其进行自定义。
第2步 – 在这一步中,我们将使用一个懒惰的关键字创建一个按钮对象。
第3步 – 在这一步中,我们将创建一个按钮对象并在以后设置框架。

创建一个按钮并在以后自定义它

下面是一个例子,说明如何在iOS中使用Swift以编程方式创建一个按钮 —

例子

import UIKit
class TestController: UIViewController {    
   private let loginButton = UIButton()
   override func viewDidLoad() {
      super.viewDidLoad()
      initialSetup()
   }    
   private func initialSetup() {
      // basic setup
      view.backgroundColor = .white
      navigationItem.title = "UIButton"

      // login button customization
      loginButton.setTitle("Login", for: .normal)
      loginButton.setTitleColor(.white, for: .normal)
      loginButton.layer.cornerRadius = 10
      loginButton.layer.masksToBounds = true
      loginButton.backgroundColor = .darkGray
      loginButton.titleLabel?.font = UIFont.systemFont(ofSize: 18, weight: .semibold)
      loginButton.addTarget(self, action: #selector(handleLoginButtonTapped), for: .touchUpInside)

      // adding the constraints to login button
      view.addSubview(loginButton)
      loginButton.translatesAutoresizingMaskIntoConstraints = false
      loginButton.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
      loginButton.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
      loginButton.heightAnchor.constraint(equalToConstant: 50).isActive = true
      loginButton.widthAnchor.constraint(equalToConstant: 280).isActive = true
   }    
   @objc private func handleLoginButtonTapped() {
      print("login button tapped...")
   }
}

输出

如何以编程方式创建一个按钮?

在上面的步骤中,一个名为loginButton的按钮对象在控制器中被创建。该按钮的标题被设置为 “Login”,标题颜色被设置为白色。该按钮还被赋予一个目标-动作对,这样当按钮被点击时,函数 “handleLoginButtonTapped “将被调用。最后,该按钮被添加为当前视图的一个子视图。

你会看到,最初,我们创建了一个按钮对象。之后,我们将在viewDidLoad()方法中定制该按钮。最后,用一些必要的约束条件将其添加到超级视图中。

使用lazy关键字创建一个按钮

下面是一个例子,说明如何在iOS中使用UIKit中的lazy关键字以编程方式创建一个按钮 —

例子

import UIKit
class TestController: UIViewController {   
   private lazy var loginButton: UIButton = {
      let button = UIButton()
      button.setTitle("Login", for: .normal)
      button.setTitleColor(.white, for: .normal)
      button.layer.cornerRadius = 10
      button.layer.masksToBounds = true
      button.backgroundColor = .darkGray
      button.titleLabel?.font = UIFont.systemFont(ofSize: 18, weight: .semibold)
      button.addTarget(self, action: #selector(handleLoginButtonTapped), for: .touchUpInside)
      button.translatesAutoresizingMaskIntoConstraints = false
      return button
   }()    
   override func viewDidLoad() {
      super.viewDidLoad()
      initialSetup()
   }    
   private func initialSetup() {       
      // basic setup
      view.backgroundColor = .white
      navigationItem.title = "UIButton"

      // adding the constraints to login button
      view.addSubview(loginButton)
      loginButton.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
      loginButton.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
      loginButton.heightAnchor.constraint(equalToConstant: 50).isActive = true
      loginButton.widthAnchor.constraint(equalToConstant: 280).isActive = true
   }    
   @objc private func handleLoginButtonTapped() {
      print("login button tapped...")
   }
}

输出

如何以编程方式创建一个按钮?

在上面的步骤中,一个名为loginButton的按钮对象在控制器中使用lazy关键字被创建。该按钮的标题被设置为 “Login”,标题颜色被设置为白色。该按钮还被赋予一个目标-动作对,这样当按钮被点击时,函数 “handleLoginButtonTapped “将被调用。最后,该按钮被添加为当前视图的一个子视图。

注意,有了lazy关键字,你就不需要在按钮的声明中把按钮添加为子视图,你可以在以后需要的时候这样做。

使用框架创建一个按钮

下面是一个例子,说明你如何在iOS中使用Swift以编程方式创建一个按钮 −

例子

import UIKit
class TestController: UIViewController {    
   private let loginButton = UIButton(type: .system)    
   override func viewDidLoad() {
      super.viewDidLoad()
      initialSetup()
   }   
   private func initialSetup() {        
      // basic setup
      view.backgroundColor = .white
      navigationItem.title = "UIButton"

      // login button customization
      loginButton.frame = CGRect(x: 20, y: 150, width: 280, height: 50)
      loginButton.setTitle("Login", for: .normal)
      loginButton.setTitleColor(.white, for: .normal)
      loginButton.layer.cornerRadius = 10
      loginButton.layer.masksToBounds = true
      loginButton.backgroundColor = .darkGray
      loginButton.titleLabel?.font = UIFont.systemFont(ofSize: 18, weight: .semibold)
      loginButton.addTarget(self, action: #selector(handleLoginButtonTapped), for: .touchUpInside)

      view.addSubview(loginButton)
   }    
   @objc private func handleLoginButtonTapped() {
      print("login button tapped...")
   }
}

输出

如何以编程方式创建一个按钮?

你可以根据你的需要改变X、Y、宽度和高度,你也可以根据你的要求改变按钮的标题和动作。

总结

你可以通过各种方式来编程创建按钮。你可以创建一个按钮对象,然后在你需要的时候在代码中对其进行自定义。此外,还可以使用lazy关键字来创建一个按钮对象。UIButton类提供了在代码中后期设置框架的灵活性。你可以在上面的例子中看到如何设置一个按钮的框架。

使用懒惰关键字是最推荐的方式。你可以创建一个按钮对象,并在一个块中添加任何自定义的内容。此外,你还可以在同一个块中添加目标。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Swift 示例