我已设法使用UISwipeGestureRecognizer
更改观看次数,但只有在完成滑动后才开始更改视图。一旦我开始在屏幕上拖动手指,我怎么能让它开始?我已经搜索过,但无法找到答案。
答案 0 :(得分:2)
使用平移手势
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)];
[self addGestureRecognizer:pan];
然后做:
- (void)handlePan:(UIPanGestureRecognizer *)gesture {
CGPoint touchPoint = [gesture locationInView:YOUR_VIEW];
UIView *draggedView = [gesture view];
switch ([gesture state]) {
case UIGestureRecognizerStateBegan:
break;
case UIGestureRecognizerStatePossible:
break;
case UIGestureRecognizerStateChanged:
break;
case UIGestureRecognizerStateEnded:
break;
case UIGestureRecognizerStateCancelled:
break;
case UIGestureRecognizerStateFailed:
break;
default:
break;
}
}
答案 1 :(得分:-1)
GestureRecognizers将一直等到确定做出了哪个手势。这就是他们总是有一点延迟的原因。否则,执行此操作的一种方法是实现自己的滑动处理程序。例如。你可以使用touchesBegan:touchesEnded:touchesMoved:和TouchesCancelled:-methods。
(请记住通过为您的节点启用userInteractionEnabled属性来启用这些方法)
// SKScene init
{
self.userInteractionEnabled = YES;
}
- (void) touchesBegan:(NSSet*) touches withEvent:(UIEvent*)event
{
// register that touch(es) began
}
- (void) touchesMoved:(NSSet*) touches withEvent:(UIEvent*)event
{
// Calculate which way touch(es) is/are moving
}
- (void) touchesEnded:(NSSet*) touches withEvent:(UIEvent*)event
{
// Register that touch(es) ended
}