Повторное использование пользовательских ячеек - PullRequest
0 голосов
/ 16 февраля 2012

Я взял пользовательскую ячейку, и я не использую этот идентификатор там. Я использую идентификатор в табличном представлении, где я использую эти пользовательские ячейки. Но когда я запускаю свое приложение и ввожу данные в текстовое поле, мои данные стираются, когда я прокручиваю представление. И моя ячейка не использует эти данные повторно. Может ли кто-нибудь помочь мне в этом. Спасибо!

Пользовательский код ячейки

-(UITableViewCell *)returnCellForEach:(UITableView *)tableView
{
    [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];

        myLabel = (UILabel *)[customCell.contentView viewWithTag:10];

    return customCell;
}

Табличное представление 'cellForRowAtIndexPath' код

static NSString *CellIdentifier = @"Cell";

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

в чем я ошибаюсь? Спасибо!

Ответы [ 2 ]

1 голос
/ 16 февраля 2012

Ячейки не должны использоваться для хранения ваших данных. Если пользователь вводит что-то в поле редактирования, вам необходимо скопировать содержимое, например, в. переменная-член в вашем контроллере представления. Если ячейка прокручивается вне поля зрения, она либо уничтожена, либо МОЖЕТ быть сохранена для повторного использования. В любом случае, вы не можете больше полагаться на это поле редактирования.

0 голосов
/ 16 февраля 2012

На самом деле я не понимаю ваш вопрос, но я сделал следующее:

cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil)
    {
        cell = (CustomCell *)[[[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil] objectAtIndex:0];
    }

myLabel = (UILabel *)[customCell.contentView viewWithTag:10];
//myLabel = cell.labelWithTag10;
myLable.text = @"Text";

И у меня это прекрасно работает;

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