2

テーブルビューに問題があります。スクロールしてセルが画面から消えると、空白になります。2つのラベルと1つのイメージビューを使用してストーリーボードにプロトタイプセルを作成しました。これは、コードで使用しているものと同じ識別子を持っています。また、カスタムセルのカスタムクラスを作成しました。cellForRowAtIndexPathのコードは次のとおりです。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

static NSString *CellIdentifier = @"Cell";
Scientist *currentScientist = [[xmlParser data] objectAtIndex:indexPath.row];

CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
    cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

}

cell.self.cellName.text = currentScientist.self.name;
cell.self.cellSubject.text = currentScientist.self.subject;
cell.self.cellImage.image = currentScientist.self.image;

return cell;
}

私を助けるためにもっとコードが必要かどうかはわかりません。

4

2 に答える 2

1

私の場合、それぞれに異なるセル識別子を作成することは問題なく機能しました。私は次のようなものを持っています:

NSString *cellIdentifier = [NSString stringWithFormat:@"identifier%i%i", indexPath.section, indexPath.row];

残りは同じままである必要があります。

于 2012-09-11T14:03:34.547 に答える
0

私はあなたが直面している問題を詳述している記事を見つけました。また、objectAtIndex:indexPath.row呼び出しでオブジェクトが正しくフェッチされていることを確認するために、Scientistデータを印刷することをお勧めします。

以下にリンクした記事から、dequeueReusableCellWithIdentifierが問題であることに賭けたいと思います。これを解決する簡単な方法の1つは、各セルに独自のセル識別子を与えることです(理論をテストするためだけに)。ただし、これを解決する適切な方法は、cellForRowAtIndexメソッドを変更することです。

ソース

于 2012-09-11T14:02:57.937 に答える