我想知道下面这段代码究竟是如何工作的(是的,它确实按预期工作,并且它给出了不同的标签值,具体取决于单击了哪个按钮。)关键是:我们不是重复使用button
7 次,在哪里剩下的6个按钮?执行此代码后,我们真的保留了 7UIButton
秒的内存吗?
或者作为一个更普遍的问题:这是一种好的编程风格吗?关键是我需要根据单击的按钮执行不同的操作,而这种方法(以我有限的 objc 技能)看起来是最直接的。提前致谢, 一位 iOS 开发新手。
UIButton *button;
for(int k=0;k<7;k++)
{
button = [UIButton buttonWithType:UIButtonTypeCustom];
[button addTarget:self
action:@selector(aMethod:)
forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"" forState:UIControlStateNormal];
button.frame = CGRectMake(80, 20+30*k, 30, 30);
button.backgroundColor=[UIColor clearColor];
button.tag=k;
[subview addSubview:button];
}
其中函数 aMethod: 定义为:
-(IBAction)aMethod:(id)sender
{
UIButton *clickedButton=(UIButton *) sender;
NSLog(@"Tag is: %d",clickedButton.tag);
}