En este tema, aprenderemos sobre los componentes fundamentales de la interfaz de usuario en iOS: las vistas y los controladores de vista. Estos elementos son esenciales para construir aplicaciones interactivas y visualmente atractivas.

  1. Introducción a las Vistas

¿Qué es una Vista?

Una vista (UIView) es un objeto rectangular en la pantalla que puede dibujar contenido y responder a eventos de usuario. Las vistas son los bloques de construcción básicos de la interfaz de usuario en iOS.

Tipos de Vistas Comunes

  • UILabel: Muestra texto estático.
  • UIButton: Un botón que el usuario puede tocar.
  • UIImageView: Muestra una imagen.
  • UITextField: Un campo de texto editable.

Ejemplo Básico de una Vista

// Crear una vista
UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(50, 50, 200, 200)];
myView.backgroundColor = [UIColor blueColor];

// Agregar la vista a la vista principal
[self.view addSubview:myView];

En este ejemplo, creamos una vista azul de 200x200 píxeles y la agregamos a la vista principal del controlador de vista.

  1. Introducción a los Controladores de Vista

¿Qué es un Controlador de Vista?

Un controlador de vista (UIViewController) es un objeto que gestiona una vista y su jerarquía de sub-vistas. Es responsable de manejar la lógica de la interfaz de usuario y la interacción del usuario.

Ciclo de Vida del Controlador de Vista

  • viewDidLoad: Llamado cuando la vista del controlador se ha cargado en memoria.
  • viewWillAppear: Llamado justo antes de que la vista del controlador se haga visible.
  • viewDidAppear: Llamado justo después de que la vista del controlador se haya hecho visible.
  • viewWillDisappear: Llamado justo antes de que la vista del controlador desaparezca.
  • viewDidDisappear: Llamado justo después de que la vista del controlador haya desaparecido.

Ejemplo Básico de un Controlador de Vista

#import "MyViewController.h"

@implementation MyViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Configurar la vista
    self.view.backgroundColor = [UIColor whiteColor];
    
    // Crear y agregar una etiqueta
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(50, 50, 200, 50)];
    label.text = @"¡Hola, Mundo!";
    label.textAlignment = NSTextAlignmentCenter;
    [self.view addSubview:label];
}

@end

En este ejemplo, creamos un controlador de vista que configura su vista principal con un fondo blanco y agrega una etiqueta con el texto "¡Hola, Mundo!".

  1. Interacción entre Vistas y Controladores de Vista

Conexión de Vistas y Controladores de Vista

Las vistas y los controladores de vista están estrechamente conectados. El controlador de vista gestiona la lógica y el comportamiento de las vistas que contiene.

Ejemplo de Interacción

#import "MyViewController.h"

@implementation MyViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    
    UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
    button.frame = CGRectMake(50, 150, 200, 50);
    [button setTitle:@"Presióname" forState:UIControlStateNormal];
    [button addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];
}

- (void)buttonPressed {
    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"¡Hola!"
                                                                   message:@"Botón presionado"
                                                            preferredStyle:UIAlertControllerStyleAlert];
    UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil];
    [alert addAction:okAction];
    [self presentViewController:alert animated:YES completion:nil];
}

@end

En este ejemplo, agregamos un botón a la vista y configuramos una acción para que se ejecute cuando el botón sea presionado. La acción muestra una alerta con un mensaje.

  1. Ejercicio Práctico

Ejercicio: Crear una Interfaz de Usuario Simple

Objetivo: Crear una aplicación que muestre un campo de texto y un botón. Cuando el usuario ingrese texto y presione el botón, el texto ingresado se mostrará en una etiqueta.

Pasos:

  1. Crear un nuevo proyecto de iOS en Xcode.
  2. En el archivo ViewController.m, agregar un campo de texto, un botón y una etiqueta a la vista principal.
  3. Configurar una acción para el botón que actualice el texto de la etiqueta con el texto ingresado en el campo de texto.

Código de Solución:

#import "ViewController.h"

@interface ViewController ()
@property (nonatomic, strong) UITextField *textField;
@property (nonatomic, strong) UILabel *label;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    
    self.textField = [[UITextField alloc] initWithFrame:CGRectMake(50, 100, 200, 40)];
    self.textField.borderStyle = UITextBorderStyleRoundedRect;
    [self.view addSubview:self.textField];
    
    UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
    button.frame = CGRectMake(50, 150, 200, 50);
    [button setTitle:@"Mostrar Texto" forState:UIControlStateNormal];
    [button addTarget:self action:@selector(showText) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];
    
    self.label = [[UILabel alloc] initWithFrame:CGRectMake(50, 220, 200, 40)];
    self.label.textAlignment = NSTextAlignmentCenter;
    [self.view addSubview:self.label];
}

- (void)showText {
    self.label.text = self.textField.text;
}

@end

  1. Conclusión

En esta sección, hemos aprendido sobre las vistas y los controladores de vista, que son componentes esenciales para construir interfaces de usuario en iOS. Hemos visto cómo crear y configurar vistas, cómo gestionar la lógica de la interfaz de usuario con controladores de vista y cómo hacer que interactúen entre sí. Con estos conocimientos, estás preparado para construir interfaces de usuario más complejas y funcionales en tus aplicaciones iOS.

En el próximo tema, exploraremos el uso de Auto Layout para crear interfaces de usuario que se adapten a diferentes tamaños de pantalla y orientaciones.

© Copyright 2024. Todos los derechos reservados