UITextField внутри UITableViewCell стирается при прокрутке

У меня небольшая форма (5 полей) в сгруппированном UITableView. Каждый UITextField находится внутри ячейки UITableView. При нажатии в текстовом поле открывается клавиатура, которая затем позволяет прокручивать некоторые из ячеек вне поля зрения, когда вы их отбрасываете, их содержимое стирается.

Правильно ли я предполагаю, что они были перерисованы, поэтому их содержание исчезло? Если да, то каков наилучший способ предотвратить это? Поскольку у меня только 5 полей, мне нужно перерисовать мои ячейки, когда они прокручиваются назад?

Я повторно использую ячейки:

static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] autorelease]; } 

Solutions Collecting From Web of "UITextField внутри UITableViewCell стирается при прокрутке"

У вас может быть отдельный массив текстовых полей и реализовать обратный вызов сотворения ячейки следующим образом:

 -(UITableViewCell*) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*) indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] autorelease]; } [[cell.contentView subviews] makeObjectsPerformSelector: @selector(removeFromSuperview)]; [cell.contentView addSubview: [textFieldsArray objectsAtIndex: indexPath.row]]; return cell; }