我有一个应用程序设置为具有tableview,允许用户添加和删除单元格(这是事件)。添加和删除DOES工作,但是当我删除一个单元格(通过进入编辑模式),我可以单击( - )按钮删除,然后我点击删除按钮,但删除按钮保持突出显示,单元格不会消失,直到我点击退出编辑模式的“完成”按钮。这是一个有人见过的问题吗?如果是这样,有解决方案吗?感谢
编辑:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"Delete");
[eventList removeObjectAtIndex:indexPath.row];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject: indexPath] withRowAnimation:YES];
[tableView reloadData];
答案 0 :(得分:3)
我建议在commitEditingStyle中删除对reloadData的调用。 deleteRowsAtIndexPaths已经负责重绘表视图。
开始寻找书面来源的最佳位置是documentation 请参阅this page上的“删除表视图行的示例”。
另请注意,在deleteRowsAtIndexPaths中,withRowAnimation不接受BOOL参数。而不是YES,它应该是UITableViewRowAnimation枚举值,如UITableViewRowAnimationFade。
答案 1 :(得分:0)
删除行后,您绝对不需要reloadData
。如果它仍然无效,您可能想尝试在beginUpdates
和endUpdates
中包含删除。最后,withRowAnimation:
参数应该是UITableViewRowAnimation
枚举之一而不是BOOL。