所以我构建了一个自定义动画,使得单元格离开屏幕左侧(类似于deleteRowsAtIndexPaths:UITableViewRowAnimationLeft看起来如何)。我这样做是因为如果我尝试使用经典方法批量删除(删除表中的所有行)(deleteRowsAtIndexPaths:with UITableViewRowAnimationLeft)看起来不正确。现在我的自定义动画看起来很棒。我有不同的菜单按钮,首先使用我的动画清除表格并且效果很好。问题是当我在表格中选择一个单元格时,我想要同样的动画,但由于某种原因它只是不起作用(没有动画启动)。这是动画代码,它应该是多余的(这个代码为每个单元格调用 - 从最后一行到第一行):
NSIndexPath *ip = [NSIndexPath indexPathForRow:i inSection:0];
UITableViewCell *cell = [_table cellForRowAtIndexPath:ip];
CGRect newFrame;
if(i%2==0){
newFrame = cell.frame;
newFrame.origin.x = -[UIScreen mainScreen].bounds.size.width;
}else{
newFrame = cell.frame;
newFrame.origin.x = [UIScreen mainScreen].bounds.size.width;
}
[UIView animateWithDuration:0.2 delay:0 options:0
animations:^{cell.frame = newFrame;}
completion: ^(BOOL finished){
//[cell removeStatus];
if(i == 0){
[dataSource removeAllObjects];
[_table reloadData];
}
}];
答案 0 :(得分:0)
我找到了解决这个问题的方法。我将动画切换为基本动画,现在它可以正常工作。