如何以编程方式创建按钮?
在本文中,您将学习如何在 Swift 语言中以编程方式创建按钮。在 iOS 中,有不同的方法可以以编程方式创建按钮对象。让我们通过示例来探索其中的一些方法。
我们将看到以下创建按钮的方法:
步骤 1 - 在此步骤中,我们将创建一个按钮对象,并在需要时对其进行自定义。
步骤 2 - 在此步骤中,我们将使用 lazy 关键字创建一个按钮对象。
步骤 3 - 在此步骤中,我们将创建一个按钮对象,稍后再设置其框架。
创建按钮并稍后自定义
以下是如何使用 Swift 在 iOS 中以编程方式创建按钮的示例:
示例
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 的按钮对象。按钮的标题设置为“登录”,标题颜色设置为白色。该按钮还具有目标-动作对,以便当点击按钮时,将调用“handleLoginButtonTapped”函数。最后,该按钮被添加为当前视图的子视图。
您将看到,我们最初创建了一个按钮对象。之后,我们将在 viewDidLoad() 方法中自定义按钮。最后,使用一些必要的约束将其添加到父视图。
使用 lazy 关键字创建按钮
以下是如何使用 UIKit 中的 lazy 关键字在 iOS 中以编程方式创建按钮的示例:
示例
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...")
}
}
输出
在上述步骤中,使用 lazy 关键字在控制器中创建了一个名为 loginButton 的按钮对象。按钮的标题设置为“登录”,标题颜色设置为白色。该按钮还具有目标-动作对,以便当点击按钮时,将调用“handleLoginButtonTapped”函数。最后,该按钮被添加为当前视图的子视图。
请注意,使用 lazy 关键字,您无需在按钮声明中将其添加为子视图,您可以在需要时随时添加。
使用框架创建按钮
以下是如何使用 Swift 在 iOS 中以编程方式创建按钮的示例:
示例
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 类提供了在代码中稍后设置框架的灵活性。您可以在上面的示例中看到如何设置按钮的框架。
使用 lazy 关键字是最推荐的方法。您可以在单个块中创建一个按钮对象并添加任何自定义项。此外,您还可以在同一个块中添加目标。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP