所以我正在为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;
我的目标是获取触摸的坐标,然后使用一些基本的数学来确定按下哪个按钮。但是,它不起作用。完全没有。没有按下按钮,没有功能运行,基本上没有任何反应。我留下了一个你无法与之互动的扫雷板。有什么想法吗?
答案 0 :(得分:1)
为每个按钮的标签分配一个单独的编号。使用按钮的目标,而不是UITouch代码。当你得到一个buttonPress时,查询标签。
答案 1 :(得分:0)
您可以对按钮进行子类化,然后对在该子类内部的按钮中发生触摸时需要发生的事情进行编程。
答案 2 :(得分:0)
可以通过调用:
访问UIButton *- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
on self(一个UIView *我想象)。所以我想你可以将按钮设置为推动状态,并且当调用touchesEnded:时,将其设置回来。