touchesMoved检测无法正常工作

时间:2012-07-20 02:31:46

标签: iphone objective-c animation

在我的应用程序中我使用touchesMoved方法来检测向左/向右滑动。 当用户连续向左和向右滑动时,图像动画会自动更新。 我能够检测到滑动动作,但有时当我开始连续左右滑动时,屏幕不会检测到触摸移动事件。

在滑动区域中,我放置了一个隐藏按钮和少量用于动画的ImageView。 我想知道它为什么会发生。请帮助我。

谢谢。

代码:

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
    [super touchesMoved:touches withEvent:event];

    UITouch *touch = [touches anyObject];   
    CGPoint newLocation = [touch locationInView:self.view];
    CGPoint oldLocation = [touch previousLocationInView:self.view];

    if(newLocation.x-oldLocation.x>0){
        swipe_direction = 1;
        //NSLog(@"left");
    }
    else{
        swipe_direction = 2;
        //NSLog(@"right");

    }

    if(swipe_direction == 1){
        //animate images
    }
    else if(swipe_direction == 2){
        //animate images
    }
}

2 个答案:

答案 0 :(得分:1)

touchesMoved仅检测视图的空白部分。因此,它不会检测您使用的对象。

在视图上放置一个SwipeGestureRecognizer,然后从那里使用它。

答案 1 :(得分:0)

您是否考虑过使用SwipeGestureRecognizer而不是touchesMoved?

检查Documentation