Возникли проблемы с UITableViewCell, загруженным из пера - PullRequest
0 голосов
/ 22 августа 2011

У меня проблемы с UITableViewCell, загруженным из пера. Я использовал документацию Apple для этого, но я не знаю, где я иду не так. UITableViewCell, созданный через IB, содержит 5 UIlable. Nib загружаются отлично, но проблема в том, что когда я прокручиваю текст, метка автоматически меняется на другую. Ниже приведен мой код для ячейки для строки в indexpath. Пожалуйста, дайте мне знать, куда я иду.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
int rowNo = [indexPath row];
NSLog(@"Row No:%d",rowNo);
Transfer *tempTransferRecord =(Transfer*)[self.transferInformation objectAtIndex:rowNo];
seasonYear.text=tempTransferRecord.seasonYear;
longName.text=tempTransferRecord.longName;
transactionDate.text=tempTransferRecord.transactionDate;
toTeam.text=tempTransferRecord.toTeam;
fromTeam.text=tempTransferRecord.fromTeam;
/*
static NSString *MyIdentifier = @"MyIdentifier2";    
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier] ;

if (cell == nil) 
{
    [[NSBundle mainBundle] loadNibNamed:@"PlayerTransfers" owner:self options:nil];
    cell=transfersInfoCell;
    self.transfersInfoCell=nil;
}

 */


static NSString *CellIdentifier = @"MyIdentifier2";
static NSString *CellNib = @"PlayerTransfers";

UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:CellNib owner:self options:nil];
    cell = (UITableViewCell *)[nib objectAtIndex:0];
}

// perform additional custom work...

return cell;

}

Ответы [ 2 ]

1 голос
/ 22 августа 2011

Попробуйте переместить код загрузки ячейки в верхнюю часть cellForRowAtIndexPath, после чего установите значение rowNo и значение.Ячейки, изменяющие содержимое, должны означать, что вы либо меняете то, что находится в источнике данных, между тем, когда вы впервые устанавливаете его, и когда вы прокручиваете, либо вы устанавливаете значения в неправильный момент времени (то есть устанавливаете значения в строке 5, но затем загружаете строку 6из пера, или установки значений в строке, но затем загрузки пера для него, чтобы установленные вами значения были переопределены).Кроме того, меня немного беспокоит, что вы устанавливаете локальные переменные, а не, скажем, (PlayerTransfers*)cell.seasonYear.text = tempTransferRecord.seasonYear или (UILabel *)[cell viewWithTag:1].text = tempTransferRecord.seasonYear.Разве вы не должны устанавливать значения в каждой ячейке, а не в своем классе табличного представления?Это может объяснить, почему значения меняются на что-то другое: вы можете использовать одни и те же переменные для установки каждой ячейки.

0 голосов
/ 22 августа 2011

Вы установили CellIdentifier в Интерфейсном Разработчике?

...