0

1 つのビューに 42 個のカスタム ボタンがあります。それらのいずれかを押して、作成したボタンを編集するにはどうすればよいですか。

int a=0; int b=1;

int otstup=10;

for (int i=1; i<=42; i++) {
    CGRect frameBtn = CGRectMake(a+60+otstup, b+otstup, 45, 45);
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button setFrame:frameBtn];
    [button setBackgroundImage:[UIImage imageNamed:@"EmptyCoin.png"] forState:UIControlStateNormal];
    [button addTarget:self action:@selector(pressBtn:) forControlEvents:UIControlEventTouchUpInside];
    [button setTag:i];

    [self.view addSubview:button];
    a=a+50;
    if (i%7 == 0)
    {
        a=0;
        b=b+45;
    }
}
4

1 に答える 1

2
-(void)pressBtn:(id)sender{ 
UIButton *btn = (UIButton*)sender;
if (btn.tag == 1){
 1st button tapped

} 
else if(btn.tag == 2)
{
 2nd button tapped
}  
}

上記のコードを使用すると、さまざまなボタンを区別できます

アップデート

その配列にすべてのボタンを格納する1つの可変配列を作成する必要があります。pressBtnメソッドでその配列にアクセスできます

int a=0; int b=1;

int otstup=10;

 for (int i=1; i<=42; i++) {
CGRect frameBtn = CGRectMake(a+60+otstup, b+otstup, 45, 45);
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setFrame:frameBtn];
[button setBackgroundImage:[UIImage imageNamed:@"EmptyCoin.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(pressBtn:) forControlEvents:UIControlEventTouchUpInside];
[button setTag:i];
[buttonAry addObject:button];

[self.view addSubview:button];
a=a+50;
if (i%7 == 0)
{
    a=0;
    b=b+45;
}
}

ボタン操作方法

-(void)pressBtn:(id)sender{ 
UIButton *btn = (UIButton*)sender;
if (btn.tag == 7){

UIButton *editButton = [buttonAry objectAtIndex:btn.tag+1];
[editButton setImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal];
} 

}
于 2013-03-06T12:23:24.420 に答える