我有一个项目,用动态创建的部分填充UITableView。一切都很好,我能够按预期添加和删除每个部分中的对象。
该脚本当前设置为在删除该部分的所有成员时也从TableView中删除一个部分。这也很好,除非我去删除列表中的最后一个单元格,删除最后一节创建一个奇怪的动画错误。节/单元格删除动画按预期播放,但分隔线跳过节标题的高度并重叠看起来很糟糕。屏幕截图不适用于我用我的手机拍摄视频,提前道歉质量。该视频显示前两个删除工作正常,然后是第三个和最后一个动画问题。
http://www.youtube.com/watch?v=eE0j5tCSRIQ
处理删除的代码如下:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
//Set active floor key
NSObject *key = [[[[self patientList] allKeys]sortedArrayUsingSelector:@selector(compare:)]objectAtIndex: indexPath.section];
[[self tableView]beginUpdates];
//Delete
[[self managedObjectContext]deleteObject:[self getPatientFromIndexPath: indexPath]];
[[[self patientList]objectForKey: key]removeObjectAtIndex:indexPath.row];
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
//Save
[[self managedObjectContext]save: nil];
//Delete section if no patients left
if ([[[self patientList]objectForKey: key]count] == 0) {
[[self patientList]removeObjectForKey:key];
[tableView deleteSections:[NSIndexSet indexSetWithIndex: indexPath.section] withRowAnimation:(UITableViewRowAnimationFade)];
}
[[self tableView]endUpdates];
}
else if (editingStyle == UITableViewCellEditingStyleInsert) {
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
}
}
找不到任何关于此的内容,我是iOS编程的新手,所以我很茫然。
答案 0 :(得分:0)
此错误已在iOS 8中修复