En aquest tema, aprendrem com gestionar l'entrada de l'usuari en una aplicació d'iOS utilitzant Objective-C. Això inclou treballar amb elements d'interfície com UITextField, UITextView, i UIControl, així com gestionar esdeveniments d'entrada com tocs i gestos.
Conceptes Clau
- UITextField: Un camp de text d'una sola línia que permet a l'usuari introduir text.
- UITextView: Un camp de text de múltiples línies que permet a l'usuari introduir text.
- UIControl: Una classe base per a controls d'interfície d'usuari com botons, commutadors, etc.
- Gestió d'Esdeveniments: Captura i resposta a esdeveniments d'entrada com tocs i gestos.
- UITextField
Creació i Configuració de UITextField
// Creació d'un UITextField programàticament UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(20, 100, 280, 40)]; textField.borderStyle = UITextBorderStyleRoundedRect; textField.placeholder = @"Introdueix el teu text aquí"; textField.delegate = self; // Assegura't que la classe actual implementi el protocol UITextFieldDelegate [self.view addSubview:textField];
Gestió de l'Entrada de l'Usuari amb UITextFieldDelegate
Per gestionar l'entrada de l'usuari, implementem el protocol UITextFieldDelegate.
// Implementació del mètode delegat per gestionar quan l'usuari prem "Return"
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder]; // Amaga el teclat
return YES;
}
- UITextView
Creació i Configuració de UITextView
// Creació d'un UITextView programàticament UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(20, 150, 280, 100)]; textView.layer.borderColor = [[UIColor grayColor] CGColor]; textView.layer.borderWidth = 1.0; textView.layer.cornerRadius = 5.0; textView.delegate = self; // Assegura't que la classe actual implementi el protocol UITextViewDelegate [self.view addSubview:textView];
Gestió de l'Entrada de l'Usuari amb UITextViewDelegate
Per gestionar l'entrada de l'usuari, implementem el protocol UITextViewDelegate.
// Implementació del mètode delegat per gestionar quan l'usuari acaba d'editar
- (void)textViewDidEndEditing:(UITextView *)textView {
NSLog(@"Text final: %@", textView.text);
}
- UIControl
Creació i Configuració de UIControl
// Creació d'un UIButton programàticament UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem]; button.frame = CGRectMake(20, 270, 280, 40); [button setTitle:@"Prem-me" forState:UIControlStateNormal]; [button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button];
Gestió d'Esdeveniments de UIControl
// Mètode que es crida quan el botó és premut
- (void)buttonPressed:(UIButton *)sender {
NSLog(@"Botó premut!");
}
- Gestió d'Esdeveniments de Toc i Gestos
Gestió de Tocs
// Afegir un reconeixedor de tocs a una vista
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
[self.view addGestureRecognizer:tapGesture];
// Mètode que es crida quan es detecta un toc
- (void)handleTap:(UITapGestureRecognizer *)gestureRecognizer {
CGPoint location = [gestureRecognizer locationInView:self.view];
NSLog(@"Toc detectat a la posició: %@", NSStringFromCGPoint(location));
}Gestió de Gestos
// Afegir un reconeixedor de gestos de lliscament a una vista
UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipe:)];
swipeGesture.direction = UISwipeGestureRecognizerDirectionRight;
[self.view addGestureRecognizer:swipeGesture];
// Mètode que es crida quan es detecta un gest de lliscament
- (void)handleSwipe:(UISwipeGestureRecognizer *)gestureRecognizer {
NSLog(@"Gest de lliscament detectat!");
}Exercicis Pràctics
-
Crear un Formulari de Registre:
- Crea una interfície amb
UITextFieldper al nom, correu electrònic i contrasenya. - Afegeix un
UIButtonper enviar el formulari. - Implementa la lògica per validar l'entrada de l'usuari i mostrar un missatge de confirmació.
- Crea una interfície amb
-
Afegir Gestos a una Imatge:
- Afegeix una imatge a la vista.
- Implementa gestos de lliscament per canviar la imatge.
- Implementa un gest de pinça per fer zoom a la imatge.
Resum
En aquesta secció, hem après a gestionar l'entrada de l'usuari en una aplicació d'iOS utilitzant Objective-C. Hem treballat amb UITextField, UITextView, UIControl, i hem après a gestionar esdeveniments de toc i gestos. Aquests conceptes són fonamentals per crear aplicacions interactives i responsives. En el següent mòdul, explorarem tècniques de depuració i proves per assegurar-nos que les nostres aplicacions funcionin correctament.
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
