Access cell attributes outside cellForRowAtIndexPath

I have five fields set on the registration controller. Username, display name, password, password confirmation, and email address.

They are installed with the following parameters:

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;

The cells themselves work great. Then I check for the correct email address, etc. This also works fine.

What I would like to do is update the cell.textLabel.textColor attribute in the validation code. For example, if the email address is invalid, I want to update the text color of the label to red so that it stands out (I also sort the responder, etc.).

How do I get a link to this particular cell outside of the cell installation?

. 5- cll ( 4) 1 ( ):

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];
+5
5

UITableViewCell, NSIndexPath.

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:YOUR_ROW inSection:YOUR_SECTION];

UITableViewCell* cell = [yourTable cellForRowAtIndexPath:indexPath];
cell.textLabel.textColor = YOUR_COLOR;
[yourTable reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];

, .

+8

UiTableView "didselectRow"

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
UILabel *label = (UILabel*)[cell viewWithTag:101]; // you can get label like
label.backgroundColor=[UIColor redColor];

- (void) cellEditAction:(UIButton *)sender {

  CGPoint buttonPosition = [sender convertPoint:CGPointZero toView:FriendsTable];
NSIndexPath *indexPath = [FriendsTable indexPathForRowAtPoint:buttonPosition];
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
UILabel *label = (UILabel*)[cell viewWithTag:101]; // you can get label like
label.backgroundColor=[UIColor redColor];

}
+1

[self tableView:self.tableView cellForRowAtIndexPath:indexPath]. .

0

.

cellForRowAtIndexPath

static NSString *cellId = @"Cell";
CustomCell *cell = (CustomCell *)[self.tblView dequeueReusableCellWithIdentifier:cellId];
if (cell == nil) {
    NSArray * myNib;
    myNib =[[NSBundle mainBundle]loadNibNamed:@"CustomCell" owner:self options:nil];
    cell = (CustomCell *)[myNib lastObject];
}
[cell.deleteBtn addTarget:self action:@selector(cellDeleteAction:) forControlEvents:UIControlEventTouchUpInside];
cell.deleteBtn.tag = indexPath.row;
[cell.editBtn addTarget:self action:@selector(cellEditAction:) forControlEvents:UIControlEventTouchUpInside];
cell.editBtn.tag = indexPath.row;

, ,

- (void) cellEditAction:(UIButton *)sender {
UIButton *button = (UIButton *)sender;
NSString *rateId = [[resDict valueForKey:@"value"]objectAtIndex:button.tag];
}
0

Swift,

let cell = tableView.cellForRow(at: indexPath) as! <Insert tableviewcell Controller here>

Then you can access all the objects inside your cell just like when you are in cellforrowat

let displayname = cell.labelfordisplayname.text!
print("This is the displayname -> \(displayname)")
0
source

All Articles