0

我正在为我正在制作的游戏制作一个二维按钮数组。实际的数组包含一个正方形类的实例,该类具有(除其他外)按钮应该去哪里的 X 和 Y 坐标。主“X 坐标”数组是一个类对象,但“Y 坐标”数组是通过程序创建的,正方形类的所有实例也是如此。到目前为止,我已经将按钮显示在正确的位置,但我需要一种方法让按钮知道它们在 X 和 Y 坐标方面的位置。我想这样做,以便在单击按钮时,其图像更改为“已选择”状态,但我不知道如何访问单击的特定按钮,因为它未连接到保存坐标的方形对象. 我一直在玩弄使用addTarget:action:forControlEvents:,但我没有

我认为我不需要为这个问题发布任何代码,因为我没有实际的编码错误,但是如果您想查看我的一些代码,或者如果您需要更多信息,请询问,我很乐意提供。

4

3 回答 3

2

您是否尝试过使用标签?用 设置它们button0.tag = 0, button1.tag = 1, ...。添加操作时,传递按钮的标签,并在您的操作中使用正确的标签更新按钮。

注意:我可能错了,我不确定我是否完全理解您的上下文,但这就是我识别相同类型的不同元素的方式,所以它可能在这里可用:)。如果我完全错了,我很抱歉。

于 2012-09-18T14:25:45.547 回答
1

处理坐标会很简单,因为所有按钮都会尽可能将它们指向同一个选择器。

[myButton addTarget:self action:@selector(buttonPressd:) forControlEvents:UIControlEventTouchUpInside];

然后在 buttonPressed: 选择器上...

- (IBAction)buttonPressed:(UIButton *)sender {
CGRect buttonFrame = [sender frame];
float buttonXCoord = buttonFrame.origin.x;
float buttonYCoord = buttonFrame.origin.y;

// The rest of your code goes here.
}
于 2012-09-18T15:53:26.730 回答
0

通过接收指向被按下按钮的指针,您分配给按钮的任何信息都将在目标方法中可用。如果您需要知道按钮的坐标,那么您可以查看它的frame属性,该属性包含按钮边界框的原点和大小。只需确保在添加目标方法中正确添加选择器(它将以冒号 [:] 结尾)并正确设置方法 -- (void)myButtonAction:(UIButton *)sender

于 2012-09-18T14:38:51.270 回答