在touchesMoved期间取消触摸事件

时间:2013-02-01 21:42:27

标签: ios uiview touch touch-event

我需要在touchesMoved期间取消触摸事件,以便底层uiviews可以接收事件。见下面的评论:

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{

    for (UITouch *touch in touches)
    {

        if (touch.view == self.touchOverlay) {
            CGPoint touchLocation = [touch locationInView:touch.view];

            //perform checks on touch location and trip sensor if circumstances are met

            if (self.touchSensorTripped) {
                self.touchOverlay.userInteractionEnabled = NO;
                //NEED TO CANCEL THE TOUCH HERE SO THAT VIEWS UNDERNEATH CAN RECEIVE THE TOUCH EVENTS
            }

        }

    }
}

目前,在触摸ENDS之前,基础视图不会接收触摸事件,这为时已晚。我需要它们在禁用叠加视图后立即开始接收touchesMoved事件,同时触摸仍在移动。我可以在上面的注释中插入什么来执行此操作?

1 个答案:

答案 0 :(得分:0)

我只是用一个测试应用程序做了一些简单的操作,并发现了调用 [[self superview]touchesMoved:touches withEvent:event];似乎适用于简单的视图层次结构,如果这就是你所拥有的。 superview的touchesMoved在视图触及之前肯定被调用。以这种方式过早调用superviews touchesMoved并不会导致之后再次调用