ios - الوصول إلى سمات الخلية خارج سيلفورواتيندكسباث




ios5 uitableview (4)

فقط اتصل [self tableView:self.tableView cellForRowAtIndexPath:indexPath] . وسوف يعود الخلية في مسار مؤشر معين.

لدي خمسة حقول الإعداد على وحدة تحكم الاشتراك. اسم المستخدم، ديسبلاينام، كلمة المرور، تأكيد كلمة المرور وعنوان البريد الإلكتروني.

يتم الإعداد مع ما يلي:

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;

الخلايا نفسها تعمل بشكل جيد. ثم لدي بعض التحقق من صحة على زر الذي يتحقق من عنوان بريد إلكتروني صالح وما إلى ذلك، وهذا يعمل أيضا بشكل جيد.

ما أود أن أكون قادرا على القيام به هو تحديث السمة cell.textLabel.textColor في رمز التحقق. على سبيل المثال، إذا كان عنوان البريد الإلكتروني غير صالح أريد تحديث لون نص التسمية إلى الأحمر بحيث يبرز (أنا أيضا فرز المستجيب الخ).

كيف يمكنني الحصول على مرجع لهذه الخلية المحددة خارج إعداد الخلايا؟

إديت هذا هو التغيير الذي يلي إجابة. أنا بحاجة للوصول إلى 5 كلل (مسار مؤشر 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];

يمكنك الحصول على إيتابيفوسيل باستخدام نسيندكسباث.

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

نأمل أن يساعدك.


الوصول تسمية مخصصة في إيتابليفيو "ديدزلكترو"

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

}

تحديث سويفت،

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

ثم يمكنك الوصول إلى جميع الكائنات داخل الخلية الخاصة بك بنفس الطريقة كما هو الحال عندما كنت في cellforrowat

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




custom-cell