• Saltar a la navegación principal
  • Saltar al contenido principal

CFE APPS by Sergio Becerril

Aprende a programar en Swift | Cursos de Swift online

  • CURSO Swift & UIKit – SwiftUI
  • Blog
  • YouTube
  • Acerca de

Crear un botón por código con Swift

06/12/2014 por Sergio Becerril 15 comentarios

¿Quereis saber como crear un botón por código con Swift?

Crear-un-botón-por-código-con-SwiftComo ya sabréis muchos de vosotros, tenemos varias opciones a la hora de crear objetos.

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»

Para aprender más sobre patrones de diseño, te recomiendo visitar mi plataforma de Cursos Online e inscribirte en alguno de ellos.

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. 😉

Archivado en: Programar con Swift Etiquetado con: Desarrollo Swift, Programar con Swift

Interacciones con los lectores

Comentarios

  1. Sandra dice

    29/04/2015 en 17:58

    Hola !!! quisiera aprender a hacer un botón y agregarle sonido, en swift, si pudieras ayudarme, te lo agradeceria mucho.

    Responder
    • Sergio Becerril dice

      01/05/2015 en 01:57

      Hola Sandra,

      Puedes ver cómo hacer lo que pides en la siguiente entrada de mi Blog.

      https://cfeapps.com/reproducir-sonidos-en-ios-con-swift/

      Además podrás descargar un ejemplo con lo explicado en la entrada.

      Gracias por pasarte por mi Blog y por comentar.

      Un fuerte abrazo.
      Sergio Becerril

      Responder
  2. Monica Garcia dice

    05/10/2015 en 16:14

    Hola Sergio,

    Me gustaría poder crear botones en iPhone6 y agregarle url de forma que al tocar el botón se abra una página web determinada.

    Es eso posible?

    Muchas gracias de antemano.

    Responder
    • Sergio Becerril dice

      08/10/2015 en 02:09

      Hola Mónica,
      Claro que es posible.
      Podrías hacerlo con la siguiente linea de código:

      UIApplication.sharedApplication().openURL(NSURL(string: «http://www.google.com»)!)

      Un abrazo.
      Sergio Becerril

      Responder
  3. erika dice

    29/12/2015 en 11:39

    Hola sergio

    Me gustaria realizar inserciones en una base de datos , es decir , a un boton asignarle un valor y que al momento que sea pulsado se guarde el valor de este boton en una base de datos sqlite .

    Responder
    • Sergio Becerril dice

      29/12/2015 en 11:52

      Hola Erika,

      Encantado de saludarte.

      La verdad es que necesitaría no uno, sino varios artículos para explicarte como hacer lo que quieres hacer.

      En este momento estoy cerrando este magnifico año terminando algunos proyectos, cosa que apenas me deja tiempo para elaborar artículos en el Blog, no obstante me lo apunto, y quizá en el 2016 pueda escribir alguna entrada sobre esto.

      Muchas gracias por visitar el blog y por comentar.

      Un abrazo.
      Sergio Becerril

      Responder
  4. Raider dice

    24/01/2016 en 17:20

    ¡Buenas!

    Me gustaría saber, cómo puedo cambiar un valor en el código dándole click a un botón.

    Gracias

    Responder
    • Sergio Becerril dice

      27/01/2016 en 14:03

      Hola Raider,

      En el articulo al crear el botón por código en esta linea:

      button.addTarget(self, action: “botonPulsado:”, forControlEvents:.TouchUpInside)

      Precisamente botonPulsado: es el método que se va a llamar cuándo se pulse el botón, entonces es tan sencillo como declarar e implementar ese método con lo que quieres que haga tu aplicación, algo así:

      -(void)botonPulsado{
      NSLog (@»HAZ ALGO»);
      }

      Gracias por visitar el Blog.

      Un saludo.
      Sergio Becerril

      Responder
  5. Luis Manuel Martí Jiménez dice

    04/03/2016 en 21:30

    Se pueden crear varios botones dependiendo su número y posición de ciertos parámetros de la aplicación.

    Me haces un mundo si me dices cómo.

    Saludos. Luis.

    Responder
    • Sergio Becerril dice

      05/03/2016 en 12:26

      Hola Luis Manuel,

      Claro que se puede, solo debes establecer condiciones, ya sabes if-else y en esas condiciones pues crear botones.

      No sé realmente que es lo que quieres, escríbeme un email diciéndome detalladamente que es lo que quieres y te intento ayudar.

      Gracias por visitar el Blog y por comentar 😉

      Un abrazo.

      Sergio Becerril

      Responder
  6. Rodrigo Gómez Saldaña dice

    24/04/2017 en 20:38

    Hola, quisiera saber como puedo hacer para que en mi juego de encontrar las diferencias cuando le des touch en la diferencia salga un circulo?

    Saludos y Gracias.

    Responder
    • Sergio Becerril dice

      24/04/2017 en 20:57

      Hola Rodrigo,

      Tan sencillo como cambiar el background del botón con tu imagen.

      Todas estas cosas y muchas más las podrás aprender en Campus iOS Online 😉

      Gracias por visitar el Blog y por comentar.

      Un abrazo!

      Sergio becerril

      Responder
  7. Issac alberto dice

    31/08/2017 en 04:05

    Hola que tal, excelente articulo amigo, espero puedas ayudarme con una duda
    Quiero que al apretar un boton se abra una ventana nueva, sabras de casualidad como seria el codigo? Gracias

    Responder
    • Sergio Becerril dice

      01/09/2017 en 02:07

      Hola Isaac,

      cuando dices «ventana» ¿te refieres a otra vista?

      Si es eso, quizá este articulo te ayude, en el explico entre otras cosas, como cambiar de vista:

      https://cfeapps.com/hola-mundo-con-swift

      Un abrazo!
      Sergio Becerril

      Responder
      • Issac alberto dice

        02/09/2017 en 06:58

        Exacto a lo de abrir una vista me referia, perdon aun soy algo nuevo en este lenguaje, muchas gracias lo checo, saludos

        Responder

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Copyright © 2023 · Business Pro en Genesis Framework · WordPress · Iniciar sesión