5

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

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

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

我知道在 UIView 动画期间您可以标记它 UIViewAnimationOptionAllowUserInteraction 并且它会正常工作,但这不是 UITableView 中的选项。

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

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

4

1 回答 1

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++;
    }
}

您还可以执行触摸动作。编译器不会禁用您的用户交互。

于 2013-03-28T17:58:48.040 回答