我正在尝试:
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
}
但只有当手指没有动作时它才有效。感谢
答案 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实例,表示事件所代表的事件结束阶段的触摸
的事件强>
表示触摸所属事件的对象。