UITableView动画期间的用户交互

时间:2012-08-17 20:21:58

标签: objective-c ios uitableview animation touch

我有一个UITableView,我的单元格处理所有的触摸而不是tableview本身。细胞需要瞬间响应单击和双击。 (是的,这确实意味着单击会被调用,然后是双击,我希望它们都被调用)。

单击动作是放入敲击单元格下方的另一个单元格(该单元格是上述单元格的菜单)。我为此使用insertRowsAtIndexPaths。然而,在那个动画期间,用户交互似乎完全失败了,所以我无法在第二次点击时触发该动作。

使用2个UITapGestureRecognizers(单击和双击)并将单个设置为等待双击失败,但在单击操作中会导致明显的延迟。

我知道在UIView动画中你可以将它标记为UIViewAnimationOptionAllowUserInteraction并且它可以正常工作,但是这不是UITableView中的一个选项。

关于如何在tablview动画期间继续接收触摸事件的任何想法?

我尝试过使用UITapGestureRecognizers,使用touchesEnded和touchesBegan,没有人在动画期间注册过触摸。

1 个答案:

答案 0 :(得分:1)

只需为执行动画创建自己的for循环。我使用了自己的递归逻辑,看起来像动画0.3秒。

NSInteger i = 0;

-(void)recursiveMethod
{
    //Doing Animation task very slowly...
    //For example, Transforming UIView.

    [aView setTransform: CGAffineTransformMakeScale(i/100.0,i/100.0)];

    if(i<100)
    {
        [self performSelector:@selector(recursiveMethod) afterDelay:0.3/100.0];
        i++;
    }
}

您也可以执行Touch Action。编译器不会破坏您的用户交互。