写真が示すように。セルをクリックしたときに 1 つの行 (灰色の行) を挿入して分割できるテーブルビューを作成し、もう一度クリックして分割をキャンセルします。
コードは次のとおりです。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
int clickCellRow = [indexPath row] + 1;
int clickCellSection = [indexPath section];
[self beginUpdates];
if (isEditFlag == NO) {
isEditFlag = YES;
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:clickCellRow inSection:clickCellSection]] withRowAnimation:UITableViewRowAnimationFade];
}
else {
isEditFlag = NO;
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:clickCellRow inSection:clickCellSection]] withRowAnimation:UITableViewRowAnimationFade];
}
[self endUpdates];
}
IOS6 では問題なく動作しますが、IOS7 では 1 つのバグが発生しました。1 つのセルがクリックされ、分割された行が挿入されると、sectionView が強制的に画面の外に出ます。
分割をキャンセルした後、非表示のセルを上にスクロールします。テーブルは次のようになります。
セルにsectionViewが読み込まれているようです!これはどのように発生し、どのように修正しますか?