我无法让我的表格视图单元格在删除时显示动画。显示任何动画的唯一单元格是底部单元格,无论表格视图行数有多大或多小,都始终为底部单元格。我有一个分组表视图单元格,如果这有任何区别。我尝试过多种方法,例如使用[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];
}
任何人都知道我做错了什么或如何解决这个问题?我感谢任何帮助和指导。提前致谢。
答案 0 :(得分: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];