如何在iOS上检测按钮的坐标?

时间:2014-06-11 18:34:11

标签: ios objective-c uibutton

所以我正在为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;

我的目标是获取触摸的坐标,然后使用一些基本的数学来确定按下哪个按钮。但是,它不起作用。完全没有。没有按下按钮,没有功能运行,基本上没有任何反应。我留下了一个你无法与之互动的扫雷板。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

为每个按钮的标签分配一个单独的编号。使用按钮的目标,而不是UITouch代码。当你得到一个buttonPress时,查询标签。

答案 1 :(得分:0)

您可以对按钮进行子类化,然后对在该子类内部的按钮中发生触摸时需要发生的事情进行编程。

答案 2 :(得分:0)

可以通过调用:

访问UIButton *
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event

on self(一个UIView *我想象)。所以我想你可以将按钮设置为推动状态,并且当调用touchesEnded:时,将其设置回来。