iOS 5編集モードで複数のセルを選択するという新機能が問題です。 アプリケーション構造は以下の通り:カスタムUITableViewCell、UITableViewとallowsMultipleSelectionDuringEditing
-> UIViewController
---> UITableView
----> CustomUITableViewCell
UIViewController
はデリゲートとUITableView
のデータソース(私は要求の理由で代わりUITableViewController
のUIViewController
を使用していると私はそれを変更できない)の両方です。セルは、次のコードのように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ファイルから作成されています。特に、スーパービューがUITableViewCell
要素で構成されている新しいxibファイルを作成しました。カスタマイズを行うために、その要素のタイプをCustomUITableViewCell
と設定しました。ここではCustomUITableViewCell
がUITableViewCell
になります。
@interface CustomTableViewCell : UITableViewCell
// do stuff here
@end
コードはうまくいきます。テーブルでは、カスタムセルが表示されます。今、アプリケーションの実行中にallowsMultipleSelectionDuringEditing
をYES
に設定し、UITableView
の編集モードに入ります。それは働いているようだ。実際には、各セルの横に空の円が表示されます。問題は、行を選択すると、空の円はその状態を変えないということです。理論的には、円は空のチェックマークと赤のチェックマークとその逆に変化しなければならない。円は細胞のcontentView
の上に残っているようです。
私は多くの実験を行いました。私はまた、以下の方法もチェックしました。
- (NSArray *)indexPathsForSelectedRows
編集モードで選択中に更新されます。選択された右のセルが表示されます。
私にはっきりしないことは、カスタムセルなしで作業しようとすると、UITableViewCell
のみで円が正しく状態を更新するということです。
ご意見はありますか?前もって感謝します。