¿Cómo creo programáticamente elementos gráficos (como a UIButton
) en Swift? Traté de crear y agregar un botón a una vista, pero no pude.
256
Aquí hay una solución completa para agregar UIButton
programáticamente con targetAction .
Swift 2.2
override func viewDidLoad() {
super.viewDidLoad()
let button = UIButton(frame: CGRect(x: 100, y: 100, width: 100, height: 50))
button.backgroundColor = .greenColor()
button.setTitle("Test Button", forState: .Normal)
button.addTarget(self, action: #selector(buttonAction), forControlEvents: .TouchUpInside)
self.view.addSubview(button)
}
func buttonAction(sender: UIButton!) {
print("Button tapped")
}
Probablemente sea mejor usar en NSLayoutConstraint
lugar de frame
colocar correctamente el botón para cada pantalla de iPhone.
Código actualizado a Swift 3.1 :
override func viewDidLoad() {
super.viewDidLoad()
let button = UIButton(frame: CGRect(x: 100, y: 100, width: 100, height: 50))
button.backgroundColor = .green
button.setTitle("Test Button", for: .normal)
button.addTarget(self, action: #selector(buttonAction), for: .touchUpInside)
self.view.addSubview(button)
}
func buttonAction(sender: UIButton!) {
print("Button tapped")
}
Código actualizado a Swift 4.2 :
override func viewDidLoad() {
super.viewDidLoad()
let button = UIButton(frame: CGRect(x: 100, y: 100, width: 100, height: 50))
button.backgroundColor = .green
button.setTitle("Test Button", for: .normal)
button.addTarget(self, action: #selector(buttonAction), for: .touchUpInside)
self.view.addSubview(button)
}
@objc func buttonAction(sender: UIButton!) {
print("Button tapped")
}
Lo anterior aún funciona si func buttonAction
se declara private
o internal
.
Puede agregar UIButton, UIlable y UITextfield programáticamente de esta manera.
Código UIButton
Código UILabel
Código UITextField
Espero que esto te ayude.
fuente
Para Swift 3
Para Swift 4
fuente
button.frame = (frame: CGRect(x: self.view.frame.size.width - 60, y: 20, width: 50, height: 50))
debería serbutton.frame = CGRect(x: self.view.frame.size.width - 60, y: 20, width: 50, height: 50)
Swift 3
Salida
fuente
Cómo hacer esto usando Swift 3.0 .
fuente
fuente
La API no ha cambiado, solo la sintaxis. Puedes hacer un
UIButton
y agregarlo así:fuente
Puede crear así y puede agregar acciones también como esta ...
fuente
Agregue este código en viewDidLoad
// add Button
Escriba esta función fuera de ella, esto llamará cuando toque el botón
fuente
En Swift 2 y iOS 9.2.1
fuente
Para Swift 5 igual que Swift 4
fuente
Es posible. Hace todo de la misma manera, excepto que usa la sintaxis rápida. Por ejemplo, podría hacer un UIButton en un código como este:
fuente
Para crear UIButton desde el guión gráfico: 1 - Arrastre el objeto UIButton desde la Biblioteca de objetos a ViewController en el archivo del guión gráfico 2 - Mostrar el asistente del editor 3 - Arrastre con el botón derecho desde UIButton crear arriba en su clase. El resultado es el siguiente:
Para crear UIButton mediante programación: 1- Escribe en "override func viewDidLoad ()":
2- agregue la función IBAction:
fuente
fuente
Si en el simulador. Algunas veces no reconoce el selector, parece que hay un error. Aunque no me enfrenté a su código, simplemente cambié el nombre de la acción (selector). Funciona
La función de selección está aquí:
fuente
fuente
Escriba este código de muestra en Swift 4.2 para agregar botón mediante programación.
fuente
fuente
Paso 1: hacer un nuevo proyecto
Paso 2: en ViewController.swift
fuente
Swift: Ui Button crea programáticamente
fuente
fuente
Por lo general, voy para configurar una extensión de UIBotton. Swift 5.
fuente
fuente
fuente