Ios 检测UIPangEstureRecognitor开始和结束的UIView网格方块
我正在设计一个在网格上进行的游戏。网格需要响应从一个正方形开始到另一个正方形结束的平移手势。我有一个名为Ios 检测UIPangEstureRecognitor开始和结束的UIView网格方块,ios,objective-c,uiview,uipangesturerecognizer,Ios,Objective C,Uiview,Uipangesturerecognizer,我正在设计一个在网格上进行的游戏。网格需要响应从一个正方形开始到另一个正方形结束的平移手势。我有一个名为GameVC的自定义视图控制器类,它包含子类GameGridSquare的UIView网格。我想让游戏执行一个动作,例如,平移手势在相邻的方块中开始和结束。我有一个故事板,上面有一些属性,它们按行和列命名每个正方形:self.A1,self.A2。。。self.H7,self.H8。识别平移手势时,我希望GameVC接收两个GameGridSquares,其中UIgestureRecognit
GameVC
的自定义视图控制器类,它包含子类GameGridSquare
的UIView网格。我想让游戏执行一个动作,例如,平移手势在相邻的方块中开始和结束。我有一个故事板,上面有一些属性,它们按行和列命名每个正方形:self.A1,self.A2。。。self.H7,self.H8。识别平移手势时,我希望GameVC
接收两个GameGridSquares
,其中UIgestureRecognitizerStateStart
和UIgestureRecognitizerStateEnd
,以便确定适当的操作,如下所示:
-(void)validatePanGestureFrom:(GameGridSquare*)beginSquare
to:(GameGridSquare*)endSquare
最好的方法是什么?我的识别器是功能性的并返回坐标,但我认为我需要探索命中测试
如果我将识别器添加到单个GameGridSquares
,我会得到不想要的结果。例如,从A1开始到B2结束的pan将仅由A1识别。这表明我需要在GameVC
上安装一个pan识别器,该识别器可以在单独的子视图中检测手势的开始和结束时间
从我所读到的内容来看,我相信
uigesturecognifizerdelegate
协议在这里可能会有所帮助。我还知道,自定义的uipangesturecognitioner
子类将允许我覆盖hitTest:withEvent,但我不确定从何处开始。关于我应该如何处理这个问题有什么想法吗?这就是我想要的:
UIView* view = gestureRecognizer.view;
CGPoint loc = [gestureRecognizer locationInView:view];
UIView* subview = [view hitTest:loc withEvent:nil];