UITableViewController在调用[table reloadData] inside(void)setEditing时取消编辑模式动画

时间:2011-05-07 04:13:47

标签: objective-c uitableview

我有一点问题:

我制作了我的setEditing方法:

- (void)setEditing:(BOOL)editing animated:(BOOL)animate {   
    [super setEditing:editing animated:animate];
    [mainTableView reloadData];
}

我正在使用reloadData来调用:cellForRowAtIndexPath,然后,如果表处于编辑模式,我将更改我的单元格的外观(例如,隐藏一些标签);

问题是当我调用[mainTableView reloadData]时,编辑动画(红色圆圈从左向右滑动,我的单元格向右滑动)不存在。如果不调用它,一切正常,但我不能自定义我的单元格,因为不再调用cellForRowAtIndexPath。

有任何建议让它发挥作用吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

也许您会尝试使用 [tableView beginUpdates] [tableView endUpdates] 更新您的表格?你需要重新加载所有单元格还是只加载其中的一些单元格?

编辑:以下是重新加载所有单元格的代码:

[tableView beginUpdates];
NSMutableArray *updatedPaths = [NSMutableArray array];
for (NSNumber *row in yourArray) {
    NSIndexPath *updatedPath = [NSIndexPath indexPathForRow:[row intValue] inSection:0];
    [updatedPaths addObject:updatedPath];
}
[tableView reloadRowsAtIndexPaths:updatedPaths withRowAnimation:UITableViewRowAnimationFade];
[tableView endUpdates];

yourArray是NSArray实例,您可以在其中存储您的cell.textLabel值或类似的内容......