編集モード中に複数のセルを選択するためにiOS 5の新機能を使用すると問題が発生します。アプリケーションの構造は次のとおりです。
-> UIViewController
---> UITableView
----> CustomUITableViewCell
はUIViewController
デリゲートとデータ ソースの両方です (要件上の理由からの代わりに をUITableView
使用しており、変更できません)。セルは次のコードのように読み込まれます。UIViewController
UITableViewController
UITableView
- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
CustomTableViewCell *cell = (CustomTableViewCell*)[tv dequeueReusableCellWithIdentifier:kCellTableIdentifier];
if (cell == nil)
{
[[NSBundle mainBundle] loadNibNamed:@"CustomTableViewCellXib" owner:self options:nil];
cell = self.customTableViewCellOutlet;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
// configure the cell with data
[self configureCell:cell atIndexPath:indexPath];
return cell;
}
セル インターフェイスは、xib ファイルから作成されています。特に、スーパービューが要素で構成される新しい xib ファイルを作成しましたUITableViewCell
。カスタマイズを提供するために、その要素の型を extends として設定CustomUITableViewCell
しCustomUITableViewCell
ますUITableViewCell
。
@interface CustomTableViewCell : UITableViewCell
// do stuff here
@end
コードはうまく機能します。テーブルにカスタム セルが表示されます。ここで、アプリケーションの実行中に に設定allowsMultipleSelectionDuringEditing
しYES
、 の編集モードに入りますUITableView
。それは働いているようです。実際、各セルの横に空の円が表示されます。問題は、行を選択しても空の円の状態が変わらないことです。理論的には、円は空のチェックマークから赤いチェックマークに、またはその逆に変化する必要があります。contentView
セルの の上に円が残っているようです。
私はたくさんの実験をしました。また、次の方法も確認しました。
- (NSArray *)indexPathsForSelectedRows
編集モードでの選択中に更新されます。選択した右のセルが表示されます。
あまり明確ではないのは、カスタムセルなしで のみで作業しようとするとUITableViewCell
、円がその状態を正しく更新することです。
何か提案はありますか?前もって感謝します。