所以我为iOS做了一个扫雷舰的克隆,我有一个包含135个按钮(扫雷板)的UIButtons数组。它看起来很棒,理论上应该很好用。但我在检测哪个按钮被按下时遇到了麻烦。我试着使用下面的代码来解决这个问题;
UITouch *touched = [[event allTouches] anyObject];
CGPoint location = [touched locationInView:touched.view];
NSLog(@"x=%.2f y=%.2f", location.x, location.y);
int pointX = location.x;
int pointY = location.y;我的目标是获取触摸的坐标,然后使用一些基本的数学来找出哪个按钮被按下了。然而,它不起作用。完全没有。没有按钮被按下,没有函数运行,基本上什么也没有发生。我只剩下一个扫雷板,你不能和它打交道。有什么想法吗?
发布于 2014-06-12 02:36:46
为每个按钮的标签分配一个单独的编号。使用按钮的目标,而不是UITouch代码。当您获得一个buttonPress时,查询标记。
发布于 2014-06-12 04:01:24
您可以将按钮划分为子类,然后对该子类中的按钮发生触摸时需要发生的操作进行编程。
发布于 2014-06-12 04:40:11
可以通过调用以下命令来访问UIButton *:
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event在self上(我想是一个UIView *)。因此,我认为您可以将按钮设置为按下状态,并在调用touchesEnded:时将其重新设置。
https://stackoverflow.com/questions/24170115
复制相似问题