手指从屏幕上抬起时检测

时间:2012-12-20 14:10:49

标签: objective-c cocoa-touch

我正在尝试:

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{


}

但只有当手指没有动作时它才有效。感谢

2 个答案:

答案 0 :(得分:1)

即使你的手指在移动,该方法也应该有效,也许问题可能与UIGestureRecognizer或UISwipeGestureRecognizer有关,如果你正在使用它。

如果您确实使用的是UISwipeGestureRecognizer,可以尝试设置:

[yourGesture setDelaysTouchesBegan:NO]; //default = NO
[yourGesture setDelaysTouchesEnded:NO]; //default = YES

如果将它们设置为yes,则会导致UIGestureRecognizer在将触摸发送到其他视图之前分析触摸

[yourGesture setCancelsTouchesInView:NO]; //default = YES

这个导致touchesCancelled:withEvent:被发送到视图,以便在调用action方法之前立即识别为此手势的一部分

此外,如果您的UIGestureRecognizer要求其他手势失败,这可能会导致问题:

- (void)requireGestureRecognizerToFail:(UIGestureRecognizer *)otherGestureRecognizer;

尝试一下!

答案 1 :(得分:0)

这来自docs
touchesEnded:withEvent:
Tells the receiver when one or more fingers are raised from a view or window.

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

Parameters
触摸
一组UITouch实例,表示事件所代表的事件结束阶段的触摸 的事件
表示触摸所属事件的对象。