0

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

在滑动区域中,我放置了一个隐藏按钮和几个用于动画的 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
    }
}
4

2 回答 2

1

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

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

于 2012-07-20T04:31:41.557 回答
0

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

检查文档

于 2012-07-20T02:47:15.937 回答