現在、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)
このコードは完全に機能しますが、間違ったボタンのセットを隠します。(letterButtonではなく_buttonOneを非表示にします)。
ペン先に12個のボタンを作成し、手動で名前を付ける方がよいのではないかと思います...12個を超えることはありません。