UILongPressGestureRecognizer无法正常工作,但将其换成UITapGestureRecognizer工作正常。为什么?

时间:2011-10-02 20:05:05

标签: ios ipad uigesturerecognizer

我有UIImageView附加UILongPressGestureRecognizer,无论我如何配置手势识别器,都似乎无法检测到长按手势。但是,如果我将其换成UITapGestureRecognizer 就可以了。可能会发生什么?

我正在配置UILongPressGestureRecognizer

UIImageView* cellView = (UIImageView*)[view viewWithTag:5];
UILongPressGestureRecognizer* longPressGestureRec =
    [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(cellLongPress:)];
longPressGestureRec.numberOfTapsRequired = 1;
longPressGestureRec.numberOfTouchesRequired = 1;
longPressGestureRec.minimumPressDuration = 0.4;
[cellView addGestureRecognizer:longPressGestureRec];
[longPressGestureRec release];

这就是cellLongPress的样子:

-(void)cellLongPress:(UILongPressGestureRecognizer*)recognizer
{
    // This never gets called.
    NSLog(@"someone long pressed me");
}

非常简单,对吧?但是到目前为止没有运气让它发挥作用。有什么想法吗?

1 个答案:

答案 0 :(得分:23)

numberOfTapsRequired设置为1,这意味着用户必须在开始长按之前点击(手指向下,手指向上,手指向下按住0.4秒,手势识别)。

numberOfTapsRequired更改为0(这是默认设置)。

对于该属性,文档只是说:

  

手势所需的视图上的点击次数   识别。

但在UILongPressGestureRecognizer.h的评论中,它说:

  

按下手势之前所需的完整水龙头数量   识别