CustomCellを使用してUITableView
います。CustomCellに追加しましUIImage
たUILabel
。...しかし、行1のセルを選択して削除UIImage
すると[[cell.contentView viewWithTag:TAG_FOR_TOPIMAG]removeFromSuperview];
、インデックス7のセルが同じセル1に変更されました。
質問する
153 次
1 に答える
0
テーブルビューはセルを再利用します(dequeueReusableCell ...)。
したがって、同じセル(ビュー)がテーブル内の複数のインデックスに使用される場合があります。
セルのレイアウトを変更(サブビューの追加/削除/変更)すると、このセル(ビュー)は、画面に表示されるたびに変更されて表示されます(毎回異なるインデックスを表す場合でも)。
たとえば、あなたの場合、画面上に同時に最大6つのセルが表示されている可能性があります。
したがって、一部のセルを変更し(変更するとインデックス1に表示されました)、テーブルをスクロールした後、インデックス1のセルが画面から消え、インデックス7のセルが表示されます(スクロール中)。テーブルは、インデックス1の行を表示するために使用されたのと同じセル(まったく同じUITableViewCellオブジェクト)を使用します。
ただし、テーブルから画像を削除しました...
テーブルを操作するときは、常にそれを覚えておく必要があります。
あなたの場合、画像ビューの可視性を非表示に設定し、各tableView"cellForRowAtIndexPath:
メソッドで復元することをお勧めします(if (cell == nil)
ステートメント内ではなく-その後)。
于 2013-01-01T15:20:48.137 に答える