UITextField внутри UITableViewCell стирается при прокрутке - PullRequest
2 голосов
/ 04 февраля 2011

У меня есть маленькая форма (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];

    }

1 Ответ

5 голосов
/ 04 февраля 2011

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

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

} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...