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
UITextField
per al nom, correu electrònic i contrasenya. - Afegeix un
UIButton
per 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