自定义单元格动画在didSelectRowAtIndexPath中不起作用:

时间:2014-03-26 21:07:49

标签: ios objective-c animation uitableview

所以我构建了一个自定义动画,使得单元格离开屏幕左侧(类似于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];
                     }
}];

1 个答案:

答案 0 :(得分:0)

我找到了解决这个问题的方法。我将动画切换为基本动画,现在它可以正常工作。