我需要在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事件,同时触摸仍在移动。我可以在上面的注释中插入什么来执行此操作?
答案 0 :(得分:0)
我只是用一个测试应用程序做了一些简单的操作,并发现了调用
[[self superview]touchesMoved:touches withEvent:event];
似乎适用于简单的视图层次结构,如果这就是你所拥有的。 superview的touchesMoved在视图触及之前肯定被调用。以这种方式过早调用superviews touchesMoved并不会导致之后再次调用