UITableViewを使って途中でセルをぬめっと追加したくて、
insertRowsAtIndexPaths:withRowAnimation:
を実行してみたのですが、

NSArray* paths = [NSArray arrayWithObject:[NSIndexPath indexPathForRow:1 inSection:0]];
[self.tableView insertRowsAtIndexPaths:paths withRowAnimation:UITableViewRowAnimationTop];

何故かセパレータが消えちゃいましたorz

いろいろいじっているうちに回避方法を発見。
挿入後に上のセルに対してsetNeedsLayoutを呼んでやればセパレータがうまく描画されるみたいです。

UITableViewCell* cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
[cell setNeedsLayout];

うーん、セルの挿入方法とか間違ってるのかなぁ。

記事検索

アーカイブ