ユーザーがツールバーのボタンを押すと、編集モードに切り替わる UITableViewController があります。ユーザーに複数のセルを選択してもらい、選択した各セルの左側に丸い赤いチェックマークを付けてもらいます。ストーリーボードのテーブル ビューで [編集中に複数選択]を選択しましたが、カスタム セルのアクセサリ/編集アクセサリはありません。
問題は、tableView のindexPathsForSelectedRowsでタップされた各セルを見つけることができますが、選択された各セルの左側にある赤いチェックマークが表示されないことです。ただし、編集モードを終了すると、選択した各セルの右側にチェックマーク アクセサリが表示されます (編集が終了したら、もう必要ありません)。
編集中: 編集
後:
コードで行ったことは次のとおりです。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (tableView.editing)
{
UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
if ([selectedCell accessoryType] == UITableViewCellAccessoryNone)
{
[selectedCell setAccessoryType:UITableViewCellAccessoryCheckmark];
}
else
{
[selectedCell setAccessoryType:UITableViewCellAccessoryNone];
}
}
}
と
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
...
if (tableView.editing)
{
cell.accessoryType = UITableViewCellAccessoryNone;
for (NSIndexPath *selectedIndex in [self.tableView indexPathsForSelectedRows])
{
if ([selectedIndex isEqual:indexPath])
{
cell.accessoryType = UITableViewCellAccessoryCheckmark;
break;
}
}
}
...
ありがとう!