我创建了一个方法,当用户想要删除一个单元格时更新我的 UITableView。
-(void)removeMoreFriendsRow:(NSNotification *)notification {
NSDictionary *d = [notification userInfo];
NSIndexPath *index = [d objectForKey:@"indexPath"];
[self.p_currentFriends removeObjectAtIndex:index.row];
[self.o_table deleteRowsAtIndexPaths:[NSArray arrayWithObject:index] withRowAnimation:UITableViewRowAnimationRight];
}
p_currentFriends 是一个 NSMutableArray,它包含 UITableView 打印的所有对象。
这种方法在我使用一次时效果很好,但在我多次使用时会失败。
似乎 indexPath 在每次调用 deleteRowsAtIndexPaths 时都保持不变。
例如,
- 在第一次调用时,用户点击第二个单元格 indexPath = [0,1] 并删除正确的单元格,
- 在第二次调用时,用户点击第三个单元格和 indexPath = [0,3] 而不是 [0,2]
我发现使它起作用的唯一方法是使用 reloadData 但我想在单元格删除时制作动画。
我怎样才能做到这一点?