0

iPadアプリケーションでUITableViewのnibファイルでカスタム拡張UITableViewCellを使用しているときに問題が発生しました。このセルを選択すると、チェックマーク画像を選択済みから未選択に変更する動作があります。これは、Appleが持っているデフォルトのチェックセルではなく、カスタム画像を使用します。したがって、私の機能のすべてが正しいようです。コードを投稿します。registerNibメソッドを使用してnibセルをロードします。

[tableView registerNib: [UINib nibWithNibName: @"ANibTableViewCell" bundle: nil] forCellReuseIdentifier: Identifier];

nibセルはクラスファイルで拡張され、それを介して管理され、接続されたアウトレットはモデル値などを追加します。

cellForRowAtIndexPathの場合:

- (UITableViewCell*) tableView: (UITableView*) tableView cellForRowAtIndexpath: (NSIndexPath*) indexPath
{
ExtendedtableViewCell* cell;
AModel* model;

cell = [tableView dequeueReusableCellWithIdentifier: Identifier];
model = [modelForDisplay objectAtIndex: indexPath.row];
cell.model = model;
// Some operations setting the check mark if it needed etc.
// Checkmark is a UIImageView in the nib cell that just changes image on selection
// Some other operations happening notified by the model if selected or unselected
return(cell);
}

私の問題は今とても奇妙です。視覚的に6つのセルがあり、最初の3つを選択すると、すべて問題ありませんが、下にスクロールして次のセルを表示すると、6行下にスクロールすると、常に6セルごとに表示されます。 3つは最初は選択されているように見えますが、選択されているかどうかに関係なく保持する拡張セルクラスインスタンスは選択された状態ではありません。それはどのような視覚効果ですか?

4

1 に答える 1

0

これを試して、

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

NSString *Identifier = [NSString stringWithFormat:@"cell%d.%d",indexPath.section,indexPath.row];


ExtendedtableViewCell* cell;
AModel* model;

cell = [tableView dequeueReusableCellWithIdentifier: Identifier];
model = [modelForDisplay objectAtIndex: indexPath.row];
cell.model = model;
// Some operations setting the check mark if it needed etc.
// Checkmark is a UIImageView in the nib cell that just changes image on selection
// Some other operations happening notified by the model if selected or unselected
return(cell);
}

それがあなたを助けることを願っています.....

于 2012-10-24T12:19:27.813 に答える