UILongPressGestureRecognizer不能正常工作,但换一个UITapGestureRecognizer可以正常工作。 为什么?
我有一个UIImageView
与UILongPressGestureRecognizer
附件,似乎从来没有检测到长按手势,无论我如何configuration手势识别器。 但是,如果我换了一个UITapGestureRecognizer
, 这工作得很好。 可能会发生什么?
这是我如何configuration我的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"); }
很简单,对吧? 但是,到目前为止还没有运气。 有任何想法吗?
numberOfTapsRequired
设置为1
,这意味着用户在开始长按之前 (手指向下,手指向上,手指向下0.4秒,手势识别),必须点击一次。
将numberOfTapsRequired
更改为0
(这是默认值)。
对于该财产,文件只是说:
手势被识别所需的视图上的点击数量。
但是在UILongPressGestureRecognizer.h
的注释中,它说:
手势被识别之前所需的全部敲击次数