开发者

Hiding UITableViewCells when entering edit mode in UITableViewCell (similar to Contacts app)

Does anyone know how to hide a number of cells from the grouped UITableView when entering in edit mode? I would like the rows to hide with animation effect as seen in the Contacts app when going out of editing mode.

As you know, when in Contacts editing mode, there are more rows than when switching back to normal mod开发者_开发问答e. I would like to know how the switching is done smoothly.

Note that my UITableView subclass is loading static UITableViewCells from the same nib using IBOutlets.


just an update for the ones who remove or insert more than one group of rows:

[self.tableView beginUpdates];
[self.tableView reloadRowsAtIndexPaths: ......];
[self.tableView insertRowsAtIndexPaths: ......];
[self.tableView removeRowsAtIndexPaths: ......];
[self.tableView endUpdates];

:D


When you set the editing mode of the UITableView, you have to first update your data source and then insert/delete rows.

- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
    [super setEditing:editing animated:animated];
    [tableView setEditing:editing animated:animated];

    // populate this array with the NSIndexPath's of the rows you want to add/remove
    NSMutableArray *indexPaths = [NSMutableArray new];

    if(editing) [self.tableView deleteRowsAtIndexPaths:paths withRowAnimation:UITableViewRowAnimationFade];
    else [self.tableView insertRowsAtIndexPaths:paths withRowAnimation:UITableViewRowAnimationFade];

    [indexPaths release];
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜