UIPanGestureRecognizer:在滑动结束时检测触摸位置
Posted
技术标签:
【中文标题】UIPanGestureRecognizer:在滑动结束时检测触摸位置【英文标题】:UIPanGestureRecognizer: detect touch location at end of swipe 【发布时间】:2015-01-10 17:53:15 【问题描述】:我在 touchesEnded 方法中调用了一个名为 addProjectile 的方法。 addProjectile 接收 touchesEnded 方法接收到的触摸的 NSSet。为简单起见,我只将相关代码发布到我的问题中。所以,要明确一点:
-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
[self addProjectile:touches];
-(void) addProjectile:(NSSet *)touches //do stuff
我想在名为 swipeRight 的 UIPanGestureRecognizer 方法的末尾调用 addProjectile 并发送正确的 NSSet 触摸。
-(void)swipedRight:(UIPanGestureRecognizer *)recognizer
CGPoint panned=[recognizer translationInView:self.view];
if(panned.x>50)//do stuff
else
NSSet *touches; <-- this is what I need to get
[self addProjectile:touches];
所以我的问题是如何在 swipedRight: 结束时获得正确的 NSSet 触摸(这将是用户拿起他/她的手指的位置)以正确执行 addProjectile 方法。
【问题讨论】:
【参考方案1】:看看UIGestureRecognizerState
。这就是你所需要的。
示例代码(假设您只需要用户完成平移即抬起手指时的触摸点):
-(void)swipedRight:(UIPanGestureRecognizer *)panGesture
if ([panGesture state] == UIGestureRecognizerStateEnded)
//User touch has ended
CGPoint touchUpPoint = [panGesture translationInView:self.view]; // or `locationInView:`
NSLog(@"__TOUCH_END_POINT__ = %@", NSStringFromCGPoint(touchUpPoint));
【讨论】:
正是我需要的以上是关于UIPanGestureRecognizer:在滑动结束时检测触摸位置的主要内容,如果未能解决你的问题,请参考以下文章