gpt4 book ai didi

ios - 检测 UIPanGestureRecognizer 开始和结束的 UIView 网格方 block

转载 作者:行者123 更新时间:2023-11-29 02:58:55 25 4
gpt4 key购买 nike

我正在设计一款发生在网格上的游戏。网格需要响应从一个方 block 开始到另一个方 block 结束的平移手势。我有一个名为 GameVC 的自定义 View Controller 类,它包含子类 GameGridSquare 的 UIView 网格。我希望游戏在例如平移手势在相邻方 block 中开始和结束时执行 Action 。我有一个 Storyboard,其中包含按行和列命名每个方 block 的属性:self.A1、self.A2、... self.H7、self.H8。当识别出平移手势时,我希望 GameVC 接收两个 GameGridSquares,其中 UIGestureRecognizerStateBeganUIGestureRecognizerStateEnded 所以它可以确定适当的操作,如下所示:

-(void)validatePanGestureFrom:(GameGridSquare*)beginSquare 
to:(GameGridSquare*)endSquare

执行此操作的最佳方法是什么?我的识别器可以正常工作并返回坐标,但我认为我需要探索 HitTest 。

如果我向单个 GameGridSquares 添加识别器,我会得到不想要的结果。例如,以 A1 开始并以 B2 结束的平移将仅由 A1 识别。这表明我需要一个 GameVC 上的平移识别器,它可以检测手势在单独的 subview 中何时开始和结束。

据我所读,我相信 UIGestureRecognizerDelegate 协议(protocol)在这里可能会有帮助。我也知道自定义 UIPanGestureRecognizer 子类允许我覆盖 hitTest:withEvent 但我不确定从哪里开始。关于我应该如何处理这个问题有什么想法吗?

最佳答案

这就是我所追求的:

Find which child view was tapped when using UITapGestureRecognizer

UIView* view = gestureRecognizer.view;
CGPoint loc = [gestureRecognizer locationInView:view];
UIView* subview = [view hitTest:loc withEvent:nil];

关于ios - 检测 UIPanGestureRecognizer 开始和结束的 UIView 网格方 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23525358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com