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

  1. UITextField: Un camp de text d'una sola línia que permet a l'usuari introduir text.
  2. UITextView: Un camp de text de múltiples línies que permet a l'usuari introduir text.
  3. UIControl: Una classe base per a controls d'interfície d'usuari com botons, commutadors, etc.
  4. Gestió d'Esdeveniments: Captura i resposta a esdeveniments d'entrada com tocs i gestos.

  1. 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;
}

  1. 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);
}

  1. 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!");
}

  1. 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

  1. 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ó.
  2. 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.

© Copyright 2024. Tots els drets reservats