Mostrando entradas con la etiqueta mobile. Mostrar todas las entradas
Mostrando entradas con la etiqueta mobile. Mostrar todas las entradas

lunes, 3 de septiembre de 2018

UIlabels con UIAppearance



Cuando usamos la colección de metodos UIAppearance nos encontramos con una gran variedad de métodos supremamente útiles, en este caso hablaremos como primera instancia de como cambiar la apariencia de las labels, pero no de todas las labels, me explico, podemos usar el método:

UILabel.appearance esto cambiará la apariencia de todas las labels en el proyecto, y es lógico hasta cierto punto, si queremos cambiar el estilo a algún componente, lo cambiará todo, a menos que manualmente cambiemos el que queramos, con swift podemos hacer algo diferente y muy útil.


UILabel.appearance(whenContainedInInstancesOf:  Lo cual nos permite modificar instancias de algo en concreto, en este caso pondremos un ejemplo, que se cambien los labels contenidos en celdas

UILabel.appearance(whenContainedInInstancesOf: [UITableViewCell.self]).textColor = UIColor.black

domingo, 7 de mayo de 2017

(Swift3.0) Enviar datos entre ViewControllers usando Segue




Se crea el proyecto



Se agrega un nuevo view controller



Se agrega un textField al primer view controller


Añadir constrains para el textField



Agregar un label en el viewController2


Se agregan 2 botones



Se crea un nuevo archivo




Relacionamos la clase con el segundo Viewcontroller




Conectamos el textField con el código de ese viewcontroller


Hacemos lo mismo con el botón



Boton "back" en el segundo view controller


para el label


Se le asigna un nombre a la unión entre views


Se cambio el nombre ViewController por LoginVC, se selecciona el circulo amarillo de ese view y se elige la clase




loginVC.swift



SecondVC.swift



 Ahora al escribir un nombre, nos redirige al secondVC con el nombre y cambia el color a amarillo 
























martes, 2 de mayo de 2017

Shake Gesture en Xcode 8 con Switf3.0




Elegimos single view Application para este proyecto


Agregamos una imagen y cubrimos toda la pantalla con ella




Seleccionamos la siguiente opción


Agregamos 3 imágenes diferentes a nuestra biblioteca para poderlas llamar posteriormente, las llamamos 1.jpg, 2.jpg y 3.jpg para esta prueba


Lo que el presente ejemplo hará es que cuando se agite el celular cambie de imágenes, una por cada sacudida, en el simulador lo encontraremos en >hardaware >shake gesture

El código utilizado es el siguiente


import UIKit


class ViewController: UIViewController {

    @IBOutlet var imageView: UIImageView!
    
    let images = ["1", "2", "3"]
    var currentImage = 0
    
    override func motionEnded(_ motion: UIEventSubtype, with event: UIEvent?)
    {
        if event?.subtype == UIEventSubtype.motionShake
        {
            print ("SHAKE")
            imageView.image = UIImage(named: images[currentImage] + ".jpg")
            
            if(currentImage == images.count-1)
            {
                currentImage = 0
            }
            else
            {
                currentImage += 1
            }
        }
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}


Se declaran las imagenes como 1,2y 3, luego se les adiciona el .jpg, declaramos una variable que se llame currentImagen con valor inicial de 0, se define una función motionEnded, el cual detecta el fin de un movimiento.

if event?.subtype == UIEventSubtype.motionShake



Dice que si existe un evento de movimiento que sea shake entonces se imprime por consola la palabra SHAKE y en la vista del usuario se visualiza una imagen.

Después se escriben 2 sentencias, si el numero de la imagen es menor que cero se establece la variable de nuevo en 0, si no a la variable currentImage se le suma 1.

Lo que hará es que cada vez que el celular tenga un movimiento o sea agitado, la imagen cambiará.


COMO CAMBIAR EN EL EMULADOR?

En la pestaña >hardware elegimos >shake gesture y la imagen debe empezar a cambiar por cada vez que presionemos esta opción. 


Tambien, por cada vez que lo presionemos, en la consola aparece la palabra SHAKE








Guardar datos permanentemente con User Defaults In xCode 8 (Swift 3.0)



Iniciamos el proyecto eligiendo "single view Application" en nuestro entorno Xcode



Elegimos un campo de texto "TextField", un Label y un Button y los agregamos a nuestro storyboard


Abrimos ViewController.swift al lado de nuestro storyBoard y arrastramos junto con click los 3 elementos, label y textfield seleccionamos connection:Outlet

El botón seleccionamos connection:action, dentro de esta función agregamos el siguiente código

@IBAction func action(_ sender: Any)
    {
        output.text = input.text
        UserDefaults.standard.set(input.text, forKey: "myName")
        input.text = ""
    }

Esto permite que el texto que se ingrese en el textfield se despliegue en el Label al presionar el botón. Simplemente eso

Ahora agregamos al final de nuestro viewcontroller el siguiente código

override func viewDidAppear(_ animated: Bool)
    {
        if let x = UserDefaults.standard.object(forKey: "myName") as? String
        {
            output.text = x
        }
    }

Este nos dice que si "myName" como se había definido en la función del botón, ya ha sido ingresado, el output.text seguirá siendo el mismo, se define una variable x que captura el texto introducido anteriormente. UserDefaults (también NSUserdefault en swift2) es un método de persistencia de datos que permite mantener los datos introducidos después de cerrada la App, para mas información sobre este método puedes revisar los siguientes links.

apple.UserDefaults
apple.UserDefaults2


Al ejecutar nuestra aplicación deberá funcionar de manera correcta al introducir un nombre o texto, luego damos en Pausar el emulador y nuevamente lo corremos, el nombre introducido debe quedar almacenado en el Label.