2011-11-21 5 views
0

私は自分のプロジェクトですでにカスタムボタンとして利用していたカスタムチェックボックスにアクセスし、テーブルビューのセルにアクセスしようとしています。UITableViewをスクロールした後にカスタムボタンイメージを更新する

現在のところ、テーブルビューをスクロールしてさらにボタンを変更(チェックインまたはチェックアウト)した場合を除いて、ボタンが正しく表示され、正常に動作しています。ボタンイメージはオーバーレイされます古いイメージで、描画を更新しません。

私は興味がありますが、これは修正されていますか?

私のコードは次のようになります。

cellForRowAtIndexPathのための私のコードは次のようになります。その方法は、新しいにビューアを取るために仮定されたように私はまだdidSelectRowAtIndexPathメソッドを実装していない

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

       static NSString *CellIdentifier = @"CustomTableCell"; 

       CustomTableCell *cell = (CustomTableCell *) 
       [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

       if (cell == nil) { 

        [[NSBundle mainBundle] loadNibNamed:@"CustomTableCell" 
        owner:self options:nil]; 

        cell = tableCell; 

        self.tableCell = nil; 
       } 

       CheckBox *chkBox = [[CheckBox alloc] init]; 
       chkBox.frame = CGRectMake(10.0, -10.0, 50.0, 70.0); 
       [cell.contentView addSubview:chkBox]; 
       [chkBox release]; 

       cell.modelLabel.text = 
    [[[[[self regData] ShoppingCart] objectForKey:@"Cart"] 
    valueForKey:@"Model"] objectAtIndex:indexPath.row]; 

       // Configure the cell... 
       return cell; 
      } 

より多くの情報を画面に表示します。

+0

cellForrowatindexPathとheightForrowAtIndexPathのコードの一部を投稿してください。あなたが指定した説明から、カスタムセルに複数の重複したビューがあるか、セル内容の再利用に問題があるようです。 – chatur

+0

私の質問はChaturのコードで更新されました。 – kforkarim

答えて

1

あなたがやっていることは、新しいセルであるか再使用されたセルであるかに関係なく、セルを表示するたびにチェックボックスを追加することです。

あなたはこのたびを行うにはしたくない:それは新しいセルの場合

CheckBox *chkBox = [[CheckBox alloc] init]; 
chkBox.frame = CGRectMake(10.0, -10.0, 50.0, 70.0); 
[cell.contentView addSubview:chkBox]; 
[chkBox release]; 

のみこれを行う...しかしサブビューとしてチェックボックスを追加し、それを解放することによって、あなたは失っていますとにかくそれへのアクセス。それにアクセスするには、セルのサブビューを繰り返し、タイプチェックボックスの1つを探し、それがチェックされているかどうかを確認する必要があります。 CustomTableCellには、設定したCheckboxプロパティがあるので、簡単にアクセスできます。

+0

これはもっと理にかなっていると思いますか? if(cell == nil){ [[NSBundle mainBundle] loadNibNamed:@ "CustomTableCell" オーナー:セルフ・オプション:なし]; cell = tableCell; CheckBox * chkBox = [[CheckBox alloc] init]; chkBox.frame = CGRectMake(10.0、-10.0、50.0、70.0); [cell.contentView addSubview:chkBox]; [chkBoxリリース]; }セルがnilに等しいときにのみボタンを埋め込むことができますか?そのようにして、チェックボックスを作成し続けることはありません。私は先に進んでプロパティを設定することもできます。 – kforkarim

関連する問題