我有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");
}
非常简单,对吧?但是到目前为止没有运气让它发挥作用。有什么想法吗?
答案 0 :(得分:23)
numberOfTapsRequired
设置为1
,这意味着用户必须在开始长按之前点击(手指向下,手指向上,手指向下按住0.4秒,手势识别)。
将numberOfTapsRequired
更改为0
(这是默认设置)。
对于该属性,文档只是说:
手势所需的视图上的点击次数 识别。
但在UILongPressGestureRecognizer.h
的评论中,它说:
按下手势之前所需的完整水龙头数量 识别