【问题标题】:Fire an event as soon as user places a finger on screen用户将手指放在屏幕上时立即触发事件
【发布时间】:2015-01-05 10:50:01
【问题描述】:

我有一个表格视图,每个单元格上都有 UIPanGestureRecognizer 以产生滑动效果。 但我的问题是用户可以同时滑动两个我想禁用的单元格。

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

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

【问题讨论】:

    标签: ios uitableview uiswipegesturerecognizer


    【解决方案1】:

    您是否尝试将UIPanGestureRecognizermaximumNumberOfTouches 属性设置为1

    【讨论】:

    • 是的。对于不同的单元格,我有不同的 UIPanGestureRecognizers。它会禁用同一个单元格上的多个手指,但如果我用 2 个手指同时滑动 2 个单元格,它将无济于事
    【解决方案2】:

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

    - (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,并且只有在滑动单元格返回其原始状态时才将其设为 false。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-26
      • 1970-01-01
      • 2014-08-28
      • 1970-01-01
      • 1970-01-01
      • 2016-01-15
      • 1970-01-01
      • 2013-11-07
      相关资源
      最近更新 更多