-3

我正在尝试:

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


}

但它只有在手指不运动时才有效。谢谢

4

2 回答 2

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;

试试看!

于 2012-12-20T16:53:15.780 回答
0

这是来自文档
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
touches
一组 UITouch 实例,它们表示由 event 表示的事件的结束阶段的触摸。
event
表示触摸所属事件的对象。

于 2012-12-20T15:58:59.140 回答