Что вам нужно сделать, это добавить следующие строки в ваш код:
for(int i = 1; i <= count; i++)
{
if(i ==1){
UIButton *btn1 = [[UIButton alloc]initWithFrame:CGRectMake(0, 10, 40, 40)];
[btn1 setImage:image2 forState:UIControlStateNormal];
[btn1 setTag:i]; // This will set tag as the value of your integer i;
[self addSubview:btn1];
continue;
}
x = x + 40;
y = y + 50;
UIButton *btn2 = [[UIButton alloc]initWithFrame:CGRectMake(x , y, 40, 40)];
[btn2 setImage:image1 forState:UIControlStateNormal];
[btn2 setTag:i]; // also set tag here.
[btn2 addTarget:self action:@selector(buttonPressed)
forControlEvents:UIControlEventTouchUpInside];
[self addSubview:btn2];
}
А теперь измените свой IBAction следующим образом:
-(void) buttonPressed: (id)sender
{
if(sender.tag==1) // determine which button was tapped using this tag property.
{
// Do your action..
}
}
Или вы можете сделать это следующим образом ...Таким образом, вы копируете объект, находящийся в отправителе, в этот UIBtton
объект.
-(void) buttonPressed: (id)sender
{
UIButton *tempBtn=(UIButton *) sender;
if(tempBtn.tag==1) // determine which button was tapped using this tag property.
{
// Do your action like..
tempBtn.backgroundColor=[UIColor blueColor];
tempBtn.alpha=0.5;
}
}
Таким образом, в этом параметре sender
он будет содержать UIButton
, с которым вы взаимодействуете, и вы можете получить доступ к его свойствам.как тег, текст и т. д. Надеюсь, это поможет ..