¿Quereis saber como crear un botón por código con Swift?
Podemos usarlos de la biblioteca y arrastrarlos a nuestros ViewControllers.
Pero también podemos crear objetos por código.
En esta entrada veremos como podremos crear un botón por código con Swift.
Antes de nada, quiero deciros que el procedimiento es prácticamente el mismo si lo que queremos es crear una etiqueta, o cualquier otro objeto.
Logicamente lo único que va a cambiar, son los métodos que usaremos para crear el objeto en cuestión.
Lo primero que hay que hacer es declarar la variable o constante a la clase que queramos usar:
let button = UIButton.buttonWithType(UIButtonType.Custom) as UIButton
Posteriormente daremos un tamaño y una posición en pantalla, lo haremos mediante la función del Framework Core Graphics CGRectMake.
Esta función nos va a pedir la posición en pantalla X, la posición en pantalla Y, su ancho y su alto en puntos por pulgada.
button.frame = CGRectMake(90, 100, 200, 100)
A continuación, una vez que hemos creado el botón, y le hemos dado una posición en pantalla y un tamaño, le enviaremos unos cuantos mensajes.
Podremos poner un titulo al botón por un estado dado, esto es que el botón tenga un texto cuándo no esté pulsado, pero podríamos poner otro texto diferente cuándo el usuario pulse el botón.
Usaremos el método setTitle: forState:
button.setTitle(«Clic Aquí», forState: UIControlState.Normal)
Seguramente queramos que nuestro botón haga algo cuándo sea pulsado por ejemplo.
Para acometer esta funcionalidad, por ejemplo que cuándo el botón sea pulsado se llame a una función o método, haremos lo siguiente:
button.addTarget(self, action: «botonPulsado:», forControlEvents:.TouchUpInside)
En la linea de código anterior estaríamos usando uno de los patrones de diseño que más se usan en el desarrollo iOS el patrón «target-action»
Si quisiéramos poner una imagen de fondo para crear un botón por código con Swift, lo haríamos de la siguiente manera:
button.setImage(UIImage (named: «America.png»), forState: .Normal)
Fijaros como también en esta ocasión, tenemos la posibilidad de establecer una imagen cuándo el botón no esté pulsado, y otra para cuándo sea pulsado.
Para poner un color de fondo en vez de una imagen, lo haríamos con la siguiente sentencia de código:
button.backgroundColor = UIColor.redColor()
Por último, nos faltaría mostrar esta vista sobre nuestra vista actual, escribiremos la siguiente linea de código:
self.view.addSubview(button)
Un apunte más para crear un botón por código con Swift
Quizá queramos redondear los limites de nuestro botón, para darle un aspecto mas cool.
Para redondear las esquinas de nuestro recién creado botón, podemos hacerlo así:
let cornerRad = CGFloat (20.0)
button.layer.cornerRadius = cornerRad
En la primera linea declaramos una constante con un valor.
En la segunda linea aplicamos una layer de tipo cornerRadius y le aplicamos el valor de nuestra constante.
Y este es el código final para crear un botón por código, con un color de fondo, y con los bordes redondeados:
let button = UIButton.buttonWithType(UIButtonType.Custom) as UIButton
let cornerRad = CGFloat (20.0)
button.layer.cornerRadius = cornerRad
button.frame = CGRectMake(90, 100, 200, 100)
button.setTitle(«Clic Aquí», forState: UIControlState.Normal)
button.addTarget(self, action: «botonPulsado:», forControlEvents:.TouchUpInside)
button.backgroundColor = UIColor.redColor()
self.view.addSubview(button)
Pues nada más, espero que a partir de ahora si quieres crear objetos en tiempo de ejecución, puedas hacerlo, pues la creación del botón, puede crearse al final de un método, de forma que si ese método se ejecuta, aparezca un botón, o cualquier otro objeto.
Si tienes alguna duda, deja un comentario. 😉
15 Comments