0

我无法让我的表格视图单元格在被删除时显示动画。唯一显示任何动画的单元格是底部单元格,无论表格视图行数有多大或多小,始终是底部。如果这有什么不同,我有一个分组的表格视图单元格。我尝试做多种事情,例如使用[tableView beginUpdates&[tableView endUpdates块以及我在网上找到的这段代码:

[UIView beginAnimations:@"myAnimationId" context:nil];

[UIView setAnimationDuration:10.0]; // Set duration here

[CATransaction begin];
[CATransaction setCompletionBlock:^{
    NSLog(@"Complete!");
}];

[myTable beginUpdates];
// my table changes
[myTable endUpdates];

[CATransaction commit];
[UIView commitAnimations];

这是我目前拥有的:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (editingStyle == UITableViewCellEditingStyleDelete)
    {
        NSLog(@"Recent: %@", self.recentSearchesArray[indexPath.row][0]);

        NSMutableArray *tempMutableArray = [[NSMutableArray alloc] initWithArray:self.recentSearchesArray];
        [tempMutableArray removeObjectAtIndex:indexPath.row];
        self.recentSearchesArray = tempMutableArray;
        [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];

        self.recentSearchesArray = tempMutableArray;   
    }
    [self.tableView reloadData];
}

任何人都知道我做错了什么或如何解决这个问题?我感谢任何帮助和指导。提前致谢。

4

1 回答 1

0

如何重新加载唯一的单元格

[tableView beginUpdates];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationNone];
[tableView endUpdates];

以上应该可以工作我认为问题出在下面的代码中

原始代码

NSMutableArray *tempMutableArray = [[NSMutableArray alloc] initWithArray:self.recentSearchesArray];
[tempMutableArray removeObjectAtIndex:indexPath.row];
self.recentSearchesArray = tempMutableArray;

它应该在哪里

[self.recentSearchesArray removeObjectAtIndex:indexPath.row];
于 2013-11-06T20:51:28.990 回答