iOS7 deleteSections:withRowAnimation:删除最后一节时的动画错误

时间:2013-10-19 19:52:48

标签: ios objective-c uitableview

我有一个项目,用动态创建的部分填充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编程的新手,所以我很茫然。

1 个答案:

答案 0 :(得分:0)

此错误已在iOS 8中修复