我有一个标签,两个按钮。标签中的一到+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];
}
这两个按钮链接到IB中的标签(计数)。 现在问我的问题。如果我想拥有更多这样的按钮和标签,我该怎么做? 我知道我可以复制代码并将它们重新链接到IB中,但这需要很长时间。 当按钮链接到计数标签时,它不能只在IB中复制它们,按钮可以工作,但它会计算第一个标签。我需要统计每个标签。
那么,我怎么能这样做并节省时间?它会有很多。
答案 0 :(得分: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
}