2009-04-06 6 views
0

私のUITableViewのセルに配列のデータを取り込む次のメソッドがあります。私は、データがインデックスとしてロードされている行を使用して配列からデータを取得したい。indexPath.rowに基づいてUITableViewCellsを開始する際の問題

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


    cellComments=(FullCommentCell *)[tableView dequeueReusableCellWithIdentifier:FullCommentCell_ID]; 
    if(cellComments==nil) 
    { 
     [[NSBundle mainBundle]loadNibNamed:@"FullCommentCell" owner:self options:nil]; 
     NSLog([NSString stringWithFormat:@"%i",indexPath.row]); 
     [cellComments loadFullComments:[latestFMLComments objectAtIndex:indexPath.row]]; 
    } 
    //cellComments.userInteractionEnabled=NO; 
    return cellComments; 

}

予想されるので、これは動作していません。テーブルは、私の配列の最初の3つの要素が入力されたに過ぎず、このデータはテーブルが終了するまで再利用されます。テーブルは、私の配列からのすべてのデータを使用する必要があります。なぜこれが期待どおりに機能していないのか?

答えて

3

セルを返すたびに、新しいセルであるか再利用されたセルでも、正確なセルデータを設定する必要があります。下にスクロールすると、テーブルの上部からのセルが削除され、テーブルの下部に再利用されます。だからこそ、最初のいくつかのデータ項目が繰り返されているのがわかります。

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

    cellComments = (FullCommentCell *)[tableView dequeueReusableCellWithIdentifier:FullCommentCell_ID]; 
    if (cellComments == nil) { 
     [[NSBundle mainBundle]loadNibNamed:@"FullCommentCell" owner:self options:nil]; 

     // Do any one-time setup here, like adding subviews 
    } 

    // Set cell data for both new and reused cells here 

    [cellComments loadFullComments:[latestFMLComments objectAtIndex:indexPath.row]]; 
    //cellComments.userInteractionEnabled=NO; 

    return cellComments; 
} 
+0

素晴らしい - それは今動作します:) – zpesk

0

dequeueReusableCellWithIdentifier呼び出しからcellCommentsを戻すと、loadFullCommnentsを再度呼び出す必要があります。セルは再表示されるので、画面に表示されるものだけを作成できます。

関連する問題