En aquest tema, explorarem els conceptes fonamentals de les vistes i els controladors de vista en el desenvolupament d'aplicacions per a iOS utilitzant Objective-C. Aprendrem com crear i gestionar vistes, així com com utilitzar controladors de vista per organitzar i controlar la interfície d'usuari.
Continguts
Introducció a les Vistes
Les vistes són els components bàsics de la interfície d'usuari en una aplicació iOS. Una vista és un objecte que gestiona una àrea rectangular de la pantalla i és responsable de dibuixar el seu contingut i gestionar els esdeveniments d'usuari.
Conceptes Clau
- UIView: La classe base per a totes les vistes en iOS.
- Subvistes: Vistes que es poden afegir dins d'altres vistes, creant una jerarquia de vistes.
- Frame: La posició i mida d'una vista dins del seu supervista.
Creació de Vistes
Exemple de Creació de Vistes
// Creació d'una vista simple UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(50, 50, 200, 200)]; myView.backgroundColor = [UIColor blueColor]; [self.view addSubview:myView];
Explicació del Codi
UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(50, 50, 200, 200)];
: Crea una nova vista amb un frame especificat.myView.backgroundColor = [UIColor blueColor];
: Estableix el color de fons de la vista a blau.[self.view addSubview:myView];
: Afegeix la vista creada com a subvista de la vista principal del controlador de vista.
Controladors de Vista
Els controladors de vista (View Controllers) són objectes que gestionen una o més vistes i coordinen la interacció entre la interfície d'usuari i la lògica de l'aplicació.
Conceptes Clau
- UIViewController: La classe base per a tots els controladors de vista.
- viewDidLoad: Mètode que es crida quan la vista del controlador s'ha carregat a la memòria.
- viewWillAppear: Mètode que es crida just abans que la vista es mostri a la pantalla.
- viewDidAppear: Mètode que es crida just després que la vista s'hagi mostrat a la pantalla.
Cicle de Vida del Controlador de Vista
El cicle de vida d'un controlador de vista inclou diversos mètodes que es criden en diferents moments del seu cicle de vida. Aquests mètodes permeten personalitzar el comportament del controlador de vista en funció de l'estat de la seva vista.
Taula del Cicle de Vida
Mètode | Descripció |
---|---|
viewDidLoad |
Es crida quan la vista s'ha carregat a la memòria. |
viewWillAppear |
Es crida just abans que la vista es mostri a la pantalla. |
viewDidAppear |
Es crida just després que la vista s'hagi mostrat a la pantalla. |
viewWillDisappear |
Es crida just abans que la vista desaparegui de la pantalla. |
viewDidDisappear |
Es crida just després que la vista hagi desaparegut de la pantalla. |
Exemple Pràctic
Creació d'un Controlador de Vista Personalitzat
#import "MyViewController.h" @implementation MyViewController - (void)viewDidLoad { [super viewDidLoad]; // Configuració inicial de la vista self.view.backgroundColor = [UIColor whiteColor]; // Creació d'una vista UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(50, 50, 200, 200)]; myView.backgroundColor = [UIColor blueColor]; [self.view addSubview:myView]; } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; // Accions a realitzar just abans que la vista es mostri } - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; // Accions a realitzar just després que la vista s'hagi mostrat } @end
Explicació del Codi
@implementation MyViewController
: Implementació del controlador de vista personalitzat.- (void)viewDidLoad
: Configuració inicial de la vista quan es carrega a la memòria.- (void)viewWillAppear:(BOOL)animated
: Accions a realitzar just abans que la vista es mostri.- (void)viewDidAppear:(BOOL)animated
: Accions a realitzar just després que la vista s'hagi mostrat.
Exercicis Pràctics
Exercici 1: Creació d'una Vista amb un Botó
- Crea una nova vista amb un botó al centre.
- Quan es premi el botó, canvia el color de fons de la vista.
Solució
#import "MyViewController.h" @implementation MyViewController - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor whiteColor]; UIButton *myButton = [UIButton buttonWithType:UIButtonTypeSystem]; myButton.frame = CGRectMake(100, 100, 100, 50); [myButton setTitle:@"Canvia Color" forState:UIControlStateNormal]; [myButton addTarget:self action:@selector(changeColor) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:myButton]; } - (void)changeColor { self.view.backgroundColor = [UIColor greenColor]; } @end
Explicació del Codi
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeSystem];
: Crea un botó de tipus sistema.myButton.frame = CGRectMake(100, 100, 100, 50);
: Estableix el frame del botó.[myButton setTitle:@"Canvia Color" forState:UIControlStateNormal];
: Estableix el títol del botó.[myButton addTarget:self action:@selector(changeColor) forControlEvents:UIControlEventTouchUpInside];
: Afegeix una acció al botó per canviar el color de fons de la vista quan es premi.- (void)changeColor
: Mètode que canvia el color de fons de la vista a verd.
Conclusió
En aquesta secció, hem après els conceptes bàsics de les vistes i els controladors de vista en Objective-C. Hem vist com crear i gestionar vistes, així com com utilitzar controladors de vista per organitzar i controlar la interfície d'usuari. A més, hem explorat el cicle de vida dels controladors de vista i hem practicat amb un exemple pràctic. Amb aquests coneixements, estem preparats per avançar en el desenvolupament d'interfícies d'usuari més complexes en les nostres aplicacions iOS.
Curs de Programació en Objective-C
Mòdul 1: Introducció a Objective-C
- Introducció a Objective-C
- Configuració de l'Entorn de Desenvolupament
- Sintaxi i Estructura Bàsiques
- Tipus de Dades i Variables
- Operadors i Expressions
Mòdul 2: Flux de Control
Mòdul 3: Funcions i Mètodes
- Definició i Crida de Funcions
- Paràmetres de Funció i Valors de Retorn
- Sintaxi de Mètodes en Objective-C
- Mètodes de Classe i d'Instància
Mòdul 4: Programació Orientada a Objectes
Mòdul 5: Gestió de Memòria
- Introducció a la Gestió de Memòria
- Comptatge Automàtic de Referències (ARC)
- Retenció i Alliberament Manual
- Millors Pràctiques de Gestió de Memòria
Mòdul 6: Temes Avançats
Mòdul 7: Treballant amb Dades
- Gestió d'Arxius
- Serialització i Deserialització
- Conceptes Bàsics de Xarxes
- Treballant amb JSON i XML
Mòdul 8: Desenvolupament d'Interfícies d'Usuari
- Introducció a UIKit
- Vistes i Controladors de Vista
- Disseny Automàtic
- Gestió de l'Entrada de l'Usuari