我正在尝试:
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
}
但它只有在手指不运动时才有效。谢谢
我正在尝试:
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
}
但它只有在手指不运动时才有效。谢谢
即使您的手指在移动,该方法也应该可以工作,如果您使用的是 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;
试试看!
这是来自文档
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
表示触摸所属事件的对象。