【发布时间】:2014-05-07 18:20:37
【问题描述】:
我正在设计一个在网格上进行的游戏。网格需要响应以一个正方形开始并以另一个正方形结束的平移手势。我有一个名为GameVC 的自定义视图控制器类,它包含子类GameGridSquare 的UIViews 网格。我希望游戏在例如平移手势在相邻方格中开始和结束时执行动作。我有一个情节提要,其中包含按行和列命名每个方块的属性:self.A1,self.A2,... self.H7,self.H8。当识别到平移手势时,我希望GameVC 接收两个GameGridSquares,其中UIGestureRecognizerStateBegan 和UIGestureRecognizerStateEnded 以便它可以确定适当的操作,如下所示:
-(void)validatePanGestureFrom:(GameGridSquare*)beginSquare
to:(GameGridSquare*)endSquare
最好的方法是什么?我的识别器是功能性的并返回坐标,但我认为我需要探索命中测试。
如果我将识别器添加到个人 GameGridSquares,我会得到不想要的结果。例如,一个以 A1 开始并以 B2 结束的盘将仅由 A1 识别。这表明我需要GameVC 上的平移识别器,它可以检测手势何时在单独的子视图中开始和结束。
根据我的阅读,我相信UIGestureRecognizerDelegate 协议在这里可能会有所帮助。我也知道自定义 UIPanGestureRecognizer 子类将允许我覆盖 hitTest:withEvent 但我不知道从哪里开始。关于我应该如何处理这个问题的任何想法?
【问题讨论】:
标签: ios objective-c uiview uipangesturerecognizer