滑动XCode的实时反馈

时间:2014-03-24 11:46:03

标签: cocoa-touch

我已设法使用UISwipeGestureRecognizer更改观看次数,但只有在完成滑动后才开始更改视图。一旦我开始在屏幕上拖动手指,我怎么能让它开始?我已经搜索过,但无法找到答案。

2 个答案:

答案 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
}
相关问题