用户将手指放在屏幕上时立即触发事件

时间:2015-01-05 10:50:02

标签: ios uitableview uiswipegesturerecognizer

我有一个tableview,每个单元格上都有UIPanGestureRecognizer,以获得滑动效果。 但我的问题是用户可以同时刷两个单元格,我想要禁用它。

那么如何确保如果用户的一根手指放在屏幕上,只要该手指留在屏幕上就不应该是任何其他手势。

如果用户滑动一个单元格并尝试滑动另一个单元格,我可以禁用tableview。但是如果同时刷两个细胞则不起作用。

2 个答案:

答案 0 :(得分:1)

您是否尝试将maximumNumberOfTouches的{​​{1}}属性设置为UIPanGestureRecognizer

答案 1 :(得分:0)

这就是我设法解决这个问题的方法。

- (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)panGestureRecognizer

{

CGPoint velocity = [panGestureRecognizer velocityInView:(CardCellView *)panGestureRecognizer.view];

if(fabs(velocity.x) > fabs(velocity.y))
{
    tblSearchResults.userInteractionEnabled = NO;

    if(isActionInProgress)
        return  FALSE;
    else
        isActionInProgress = TRUE;
}

return fabs(velocity.x) > fabs(velocity.y);

}

如果用户滑动任何单元格,我将BOOL isActionInProgress更改为true,并且只有在刷过的单元格恢复到原始状态时才会使其为假。