Ho cinque campi di configurazione su un controller di registrazione. Username, displayname, password, conferma password e indirizzo email.Accesso agli attributi di cella all'esterno di cellForRowAtIndexPath
Sono configurazione con il seguente:
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.textLabel.textColor = [UIColor colorWithRed:14.0f/255.0f green:62.0f/255.0f blue:178.0f/255.0f alpha:0.8f];
cell.textLabel.font = [UIFont boldSystemFontOfSize:13.0f];
switch (indexPath.row) {
case 0: {
cell.textLabel.text = NSLocalizedString(@"UsernameFieldLabel", @"Username field label");
[cell addSubview:self.usernameField];
break ;
}
case 1: {
cell.textLabel.text = NSLocalizedString(@"DisplayNameFieldLabel", @"Displayname field lael");
[cell addSubview:self.displayNameField];
break ;
}
case 2: {
cell.textLabel.text = NSLocalizedString(@"PasswordFieldLabel", @"Password field lael");
[cell addSubview:self.passwordField];
break ;
}
case 3: {
cell.textLabel.text = NSLocalizedString(@"ConfirmPasswordFieldLabel", @"Confirm Password field lael");
cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
cell.textLabel.numberOfLines = 2;
[cell addSubview:self.confirmPasswordField];
break ;
}
case 4: {
cell.textLabel.text = NSLocalizedString(@"EmailFieldLabel", @"Email field lael");
[cell addSubview:self.emailField];
break ;
}
}
return cell;
le cellule stesse funzionano bene. Ho quindi qualche convalida su un pulsante che controlla la presenza di un indirizzo email valido, ecc. Anche questo funziona bene.
Quello che vorrei essere in grado di fare è aggiornare l'attributo cell.textLabel.textColor nel codice di convalida. Ad esempio, se l'indirizzo e-mail non è valido, voglio aggiornare il colore del testo dell'etichetta a Rosso in modo che si distingua (ho anche ordinare il risponditore, ecc.).
Come si ottiene un riferimento a questa cella specifica al di fuori dell'impostazione delle celle?
MODIFICA Questa è la modifica che segue una risposta. Ho bisogno di accedere al 5 ° CLL (percorso dell'indice 4) nella sezione 1 (una sola sezione in vista tabella):
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:4 inSection:1];
UITableViewCell* cell = [self.tableView cellForRowAtIndexPath:indexPath];
cell.textLabel.textColor = [UIColor redColor];
[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
Cambia NSIndexPath * indexPath = [NSIndexPath indexPathForRow: 4 inSection: 1]; as NSIndexPath * indexPath = [NSIndexPath indexPathForRow: 4 inSection: 0]; –