0

ラベルは 1 つ、ボタンは 2 つです。ラベルから 1 対 +1 および 1 対 -1。

次のコードを使用します。

.h

    int counter;

    IBOutlet UILabel *count;
}

-(IBAction)plus:(id)sender;
-(IBAction)minus:(id)sender;

.m

-(IBAction)plus {

    counter=counter + 1;

    count.text = [NSString stringWithFormat:@"%i",counter];

}

-(IBAction)minus {

    counter=counter - 1;

    count.text = [NSString stringWithFormat:@"%i",counter];

}

2 つのボタンは、IB のラベル (カウント) にリンクされています。今私の質問に。このようなボタンやラベルをさらに追加したい場合は、どうすればよいですか? コードをコピーしてIBで再リンクできることはわかっていますが、時間がかかります。また、ボタンがカウント ラベルにリンクされている場合、ボタンを IB にコピーするだけでは機能しません。ボタンは機能しますが、最初のラベルをカウントします。すべてのラベルをそれぞれカウントする必要があります。

では、どうすればこれを行い、時間を節約できますか? それらの多くになります。

4

1 に答える 1

0

ボタンを連続して生成し、それらを NSArray に保存して、ラベルで同じことを行うことができます。次に、配列内のインデックスを使用してそれらを関連付けることができます。

// Assuming a view controller
@interface MyVC: UIViewController {
    NSMutableArray *buttons;
    NSMutableArray *labels;
}

// in some initialization method
buttons = [[NSMutableArray alloc] init];
labels = [[NSMutableArray alloc] init];
for (int i = 0; i < numberOfButtonsAndLabels; i++) {
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    // configure the button, then
    [self.view addSubview:btn];
    [buttons addObject:btn];

    UILabel *lbl = [[UILabel alloc] initWithFrame:aFrame];
    // configure the label, then
    [self.view addSubview:lbl];
    [labels addObject:lbl];
    [lbl release];
}

- (void)buttonClicked:(UIButton *)sender
{
    NSUInteger index = [buttons indexOfObject:sender];
    UILabel *label = [labels objectAtIndex:index];

    // use index, sender and label to do something
}
于 2012-09-02T20:55:33.620 に答える