目前,我使用 for 循环以编程方式创建了 14 个按钮,代码如下:
int buttonCount = 14;
for (int i=0; i< buttonCount; i++) {
//Create titleString from array object
NSString *stringFromInt = [NSString stringWithFormat:@"%@",[arrayForRound objectAtIndex:i]];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button addTarget:self
action:@selector(buttonSelected:)
forControlEvents:UIControlEventTouchDown];
[button setTitle:stringFromInt forState:UIControlStateNormal];
button.titleLabel.font = [UIFont fontWithName:@"helvetica" size:19];
button.tag = i;
[self.view addSubview:button];
}
这非常适合创建按钮,然后我可以使用所选按钮的值填充答案框:
-(void)buttonSelected: (UIButton *)sender
{
[_buttonOne setTitle:sender.titleLabel.text forState:UIControlStateNormal];
}
但是,在填充按钮后,我想将其从屏幕上删除。如果我调用 button.hidden 它只是隐藏以编程方式创建的最后一个按钮。我知道 button.tag 并尝试使用它,但感觉我几乎需要做类似的事情:
//Hide button for tag (i know this is incorrect syntax)
button for buttonTag: 3 setHidden;
有没有类似的东西或这样做的方法?
更新
我试图隐藏的按钮是以编程方式创建的。所以我希望 _buttonOne 采用创建按钮的标题(让我们称之为 letterButton),然后从视图中隐藏 letterButton,
UIButton *yourBtn = (UIButton *)[self.button viewWithTag:3];
[yourBtn setHidden:YES];
(code posted by Oh Seung Kwon)
此代码完美运行,但它隐藏了错误的按钮集。(隐藏 _buttonOne 而不是 letterButton)。
我想知道在 nib 中创建 12 个按钮并手动命名它们是否会更好......永远不会多或少 12 个。