我有UITableView
,当用户在其中一个单元格上滑动时,他可以删除单元格(从数组中删除对象)。
但是,例如,当用户在表格中间的单元格上滑动时,动画将在最后一个单元格(底部的单元格)上进行,就像在此视频中一样:
以下是此删除的代码:
//Removing cell from "AroundersTableView"(UITableView) with UITableViewRowAnimationLeft
[self.AroundersTableView beginUpdates];
[self.Arounders removeObjectAtIndex:cellRowToDelete];
[self.AroundersTableView deleteRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:cellRowToDelete inSection:0]] withRowAnimation:UITableViewRowAnimationLeft];
[self.AroundersTableView endUpdates];
//Saving Arounders
[self saveArounders];
//Creating "newTableFrame"(CGRect) and setting it to current "AroundersTableView"'s frame will one less cell
CGRect newTableFrame=self.AroundersTableView.frame;
newTableFrame.origin.y+=44;
//Animating "AroundersTableView" to the new frame
[UIView animateWithDuration:0.5 animations:^{
self.AroundersTableView.frame=newTableFrame;
}];
//ReConfiguring "AroundersTableView"(UITableView) height
[self performSelector:@selector(configureTableViewsHeight) withObject:nil afterDelay:0.5];
//Reloading "AroundersTableView"(UITableView) data
[self.AroundersTableView reloadData];
注意:configureTableViewsHeight
只是使tableView高度为cell.height*Arounders.count
(单元格高度*单元格数)的方法。
我不知道为什么会这样。
为什么?如何在正确的单元格上制作动画(它上面的所有单元格都会向下移动并隐藏红色部分)?
谢谢!