0

我使用for循环制作了一个带有图像和按钮的水平滚动视图,我现在要做的是当按下按钮时,打开它对应于全屏的图像。我遇到的问题是确定按下了哪个按钮。我在用 :

[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];

然后 :

-(void)buttonPressed:(UIButton *)sender {}

我能做些什么来解决这个问题?谢谢

4

4 回答 4

1

按下了哪个按钮

创建一个property来存储一个tag。在buttonPressed方法中将属性设置为sender.tag

现在您可以知道最后按下的按钮是哪个。

于 2013-03-07T08:34:26.663 回答
0

sender是用户点击的按钮,因此当您创建按钮时,您可以使用该tag属性并将其设置为保存图像的数组的索引。但是,如果您更改图像或按钮的顺序或数量,这可能会有点不稳定,因此请准备好进行检查。

于 2013-03-07T08:34:44.520 回答
0

一种方法是保留您的按钮的引用(使用属性,类中的属性)并测试它是否是您的 buttonPressed 方法中的好按钮

- (void)buttonPressed:(UIButton *)sender {
  if (sender == self.myButton) {
    // DO YOUR WORK HERE
  }
}

您还可以为此创建一个方法,并且只有一个按钮

顺便说一句,最好说

- (IBAction)buttonPressed:(UIButton *)sender

然后您可以在界面构建器界面中设置按钮的目标

于 2013-03-07T08:36:05.810 回答
0

为for循环中的每个按钮设置标签but.tag=i;

-(void)buttonPressed:(UIButton *)sender {

if (sender.tag==1){

//显示图片1

}

否则如果……

}

于 2013-03-07T08:38:38.500 回答