2

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

4

1 回答 1

0

此错误已在 iOS 8 中修复

于 2015-02-27T22:08:05.460 回答