私は自分自身にあまりにも多くの時間を費やしたというバグがあります。基本的に、Apple ドキュメントに基づいて「アコーディオン」テーブル ビューを作成してい ます。 DTS40010139-ReadMe_txt-DontLinkElementID_3 テーブル ビュー ヘッダーをタップすると、コードが呼び出されてそのセクションに行が追加されます。
唯一の違いは、それが iOS 5 用であるという事実です。そのため、私のヘッダー ビューでは、再利用可能なヘッダー ビューのものを使用していません。
基本的に、ヘッダーをクリックして行を表示するたびに、[tableView beginUpdates]/[tableView endUpdates] を介して追加/削除されたセルが黒くなります。ただし、後でテーブルビューをスクロールすると、通常の状態に戻ります。
この動作を示す写真: http://imgur.com/a/B3lMu
セルを削除する方法のコード:
// GET THE SECTION INFO SWDeviceSectionInfo *deviceSectionInfo = [self.deviceTableSectionInfo objectAtIndex:section];
// "CLOSE" THE SECTION
deviceSectionInfo.open = NO;
// CREATE INDEX PATHS FOR ROWS THAT NEED TO BE DELETED
NSMutableArray *indexPathsToDelete = [[NSMutableArray alloc] init];
for (int i=0;i<deviceSectionInfo.rowInfo.count;i++) {
// CREATE INDEX PATHS FOR EACH ROW
[indexPathsToDelete addObject:[NSIndexPath indexPathForRow:i inSection:section]];
}
// APPLY THE ROW INSERTIONS
[self.deviceTableView beginUpdates];
[self.deviceTableView deleteRowsAtIndexPaths:indexPathsToDelete withRowAnimation:UITableViewRowAnimationBottom];
[self.deviceTableView endUpdates];
いくつかの追加メモ:
- テーブル ビューをスクロールした後のセルの背景は、テーブル ビューの背景です (セルの BG を設定できません)。黄色のビューは、緑色であるはずのセルの背景の上部にあるビューです。
- iOS シミュレーターのデバッグ「色」をクリックすると、黒いセルが消えます。
- 「強調表示」、「選択」された色をランダムな色に変更しようとしましたが、何も変わりません。黒いセルのバグのままです。
- 間違ったセクションにセルを追加するなどのコードをトリプルチェックしましたが、すべて正しいようです。
- このバグは、デフォルトの白セル (カスタムペン先なし) を使用したときにも発生しました。