2012-02-16 25 views
0

私はカスタムセルを撮影しましたが、その上に識別子を再利用していません。私はそのカスタムセルを使用しているテーブルビューで識別子を使用しています。しかし、アプリケーションを実行してテキストフィールドにデータを入力すると、私のデータが消去されてview.andをスクロールすると、私のセルはそのデータを再利用していません。ありがとう!カスタムセルの再利用

カスタムセルコード

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

いただきまし間違い私はこのこと。ありがとう!

答えて

1

セルをデータの格納に使用しないでください。ユーザーが編集フィールドに何かを入力した場合、コンテンツを例えばにコピーする必要があります。ビューコントローラのメンバ変数。セルが表示外にスクロールされると、セルが破棄されるか、再利用のために保管される可能性があります。いずれにしても、その編集フィールドがもう存在しないようにすることはできません。

+0

私はデータを格納するためにセルを使用していません。私はセルがデータを格納していないことを知っています。私のexat質問は私のテーブルビューに含まれています15cells.If私は最初のセルにデータを入力し、セルが消去されています。その意味では、セルはデータを再利用しません。また、最初のセルのデータは消去されています。 –

+0

それは私が言っていることです。画面からスクロールされていても、その内容を覚えておくことを期待します。それは動作しません。セルが破壊され再構築される可能性があります。コンテンツをメンバー変数にコピーする必要があります。そして、その細胞を作り直すように頼まれたら、それを埋めてください。 –

+0

Ravi Kiran:細胞の作成時にラベルに値を割り当てないでください。 – Mahesh

0

私は実際にあなたの質問を取得いけない、しかし、私は次のように行っている:

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

、それは私のために正常に動作します。